我的代码如下:
logPath = os.path.join(os.path.normpath(os.getcwd()) + "/datei.log") + os.sep
logFile = open(logPath, "a+")
logFile.write(foo)
logFile.close()
此应该打开文件./datei.log
(如果它不存在则创建它)。但是,我得到FileNotFoundError
:
FileNotFoundError: [Errno 2] No such file or directory: '/foo/bar/datei.log/'
我看到的所有资源都表明"a+"
而不是"a"
应该解决这个问题,但这显然会失败。我该如何解决?
答案 0 :(得分:2)
open
函数需要一个类似路径的对象,该对象指向现有目录中的文件。当目录不存在时会引发错误,在我的情况下,在Python 3.6中错误是:
NotADirectoryError:[Errno 20]不是目录:'/ Users / grr / datei.log /'
正如@cᴏʟᴅsᴘᴇᴇᴅ指出尾随os.sep
在文件描述符的末尾添加了一个'/',使其看起来像是路径而不是文件。这是造成错误的原因。