【问题标题】:Python3.4: Opening file with mode 'w' still gives me FileNotFound error [duplicate]Python3.4:以“w”模式打开文件仍然给我 FileNotFounderror [重复]
【发布时间】:2015-11-08 13:25:54
【问题描述】:

我遇到了一个小问题:在 'w' 模式下使用函数 open() 时,所有文档都说如果文件不存在则创建该文件。不幸的是,在我的情况下,由于某种原因,我收到了FileNotFound 错误。

with open(newFileName, 'w') as newFile:
    #CODE

我收到以下错误:

FileNotFoundError: [Errno 2] No such file or directory: 'path of file I have specified'

知道为什么会这样吗?提前致谢!

编辑:对于那些询问目录是否存在的人,我对代码做了一些小改动,可能会告诉你这确实是一条好路。

if not os.path.exists("example"):
    os.makedirs("example")

BASE_DIR = os.path.dirname(os.path.abspath(__file__))

newFileName = "example/restOfPath"
newFileName = os.path.join(BASE_DIR,newFileName)

with open(newFileName, 'w') as newFile:

我仍然收到以下错误:

FileNotFoundError: [Errno 2] No such file or directory: 'correctPathToDirectory/example/restOfPath'

EDIT2:忽略这个问题,问题解决了。在“示例”之后创建了第二个目录,因此它不起作用。愚蠢的错误。

【问题讨论】:

标签: python file python-3.x


【解决方案1】:

此错误的原因可能是包含您的新文件的目录尚不存在。

open()'w' 只会为您创建不存在的文件,而不是整个目录路径。所以你首先需要为文件创建目录。

【讨论】:

  • 我确实想到了这种可能性,所以我在该行代码之前创建了目录。
  • 那么另一种可能是你的程序在指定目录没有写权限。
  • 也许,@x-squared,但是这段代码会在其他人的机器上运行,我不能在运行代码之前要求他们 chmod。有没有办法绕过这个?
  • 它是您选择的目录吗?您始终可以在用户本地目录中写入,例如Windows 中的 $APPDATA 和 Linux 中的 $HOME/.config。
  • 我已经编辑了帖子,提供了更多信息。
猜你喜欢
  • 1970-01-01
  • 2019-10-11
  • 1970-01-01
  • 1970-01-01
  • 2011-01-24
  • 2014-09-11
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
相关资源
最近更新 更多