FileNotFoundError即使使用filemode“a+”

2024-09-30 15:27:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样的代码:

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"应该解决这个问题,但这显然失败了。我该怎么解决?你知道吗


Tags: path代码logfooosopensepwrite
1条回答
网友
1楼 · 发布于 2024-09-30 15:27:11

^{}函数需要一个类似路径的对象,该对象指向现有目录中的文件。当目录不存在时,会引发一个错误,在我的Python 3.6中,错误是:

NotADirectoryError: [Errno 20] Not a directory: '/Users/grr/datei.log/'

正如@cᴏʟᴅsᴘᴇᴇᴅ指出的,后面的os.sep在文件描述符的末尾添加了一个“/”,使它看起来像是一个路径而不是一个文件。这就是导致错误的原因。你知道吗

相关问题 更多 >