Python3.4: Opening file with mode 'w' still gives me FileNotFound error
我遇到了一个小问题:当在'w'模式下使用函数open()时,所有文档都表示如果该文件不存在,则会创建该文件。不幸的是,在我的例子中,由于某种原因,我得到了一个FileNotFound错误。
1 2
| with open(newFileName, 'w') as newFile:
#CODE |
我收到以下错误:
1
| FileNotFoundError: [Errno 2] No such file or directory: 'path of file I have specified' |
你知道为什么会这样吗?事先谢谢!
编辑:对于那些询问目录是否存在的人,我对代码做了一些小的更改,这些更改可能会向您显示这确实是一条好路径。
1 2 3 4 5 6 7 8 9
| 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: |
我仍然得到以下错误:
1
| FileNotFoundError: [Errno 2] No such file or directory: 'correctPathToDirectory/example/restOfPath' |
编辑2:忽略这个问题,问题解决了。在"example"之后正在创建第二个目录,因此它不工作。愚蠢的错误。
- 你能做一个print(newFileName)看看上面提到的文件吗?
- 你能给我们NewFileName的值吗?我怀疑它可能是/some/dir/filename,其中/some/dir不存在。
- @w&233;dneyyuri操作系统不要求以读写模式打开文件…
- 我确实考虑过这种可能性,所以我在这行代码之前创建了目录。
- stackoverflow.com/questions/25924720/filenotfounderrror errno‌&8203;-2,stackoverflow.com/questions/22282760/…,stackoverflow.com/questions/28198915/…
- @巴拉姆:如果您的代码不能成功地创建新的目录,您应该收到一条错误消息,但是您检查它是否创建成功了吗?
- 是的,创建目录"example"。
- @Balaam:目录"example"上的权限是什么?
- 它给出了正确的路径。不管这个问题,我已经解决了这个问题。似乎我的代码是在"example"之后创建另一个目录,这就是问题所在。完全愚蠢,我知道。谢谢你的帮助!
此错误的原因可能是包含新文件的目录尚不存在。
使用'w'的open()只为您创建不存在的文件,而不是整个目录路径。因此,首先需要为文件创建目录。
- 我确实考虑过这种可能性,所以我在这行代码之前创建了目录。
- 另一种可能是您的程序在指定的目录中没有写权限。
- 也许,@x-squared,但是这个代码会在其他人的机器上运行,我不能在运行代码之前要求他们先chmod。有没有办法规避这个问题?
- 这是你选择的目录吗?您可以始终在用户本地目录中写入,例如Windows中的$appdata和Linux中的$home/.config。
- 我用更多的信息编辑了这篇文章。
- 我们有问题。如果"blocks"不存在,则创建文件夹"example"。但即使存在"blocks",也要将文件路径更改为"example/…"。