Python3.4:以“w”模式打开文件仍然给我 FileNotFounderror [重复]

Posted

技术标签:

【中文标题】Python3.4:以“w”模式打开文件仍然给我 FileNotFounderror [重复]【英文标题】:Python3.4: Opening file with mode 'w' still gives me FileNotFound error [duplicate] 【发布时间】: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:忽略这个问题,问题解决了。在“示例”之后创建了第二个目录,因此它不起作用。愚蠢的错误。

【问题讨论】:

你可以做一个print(newFileName) 并查看提到的文件 你能给我们newFileName的值吗?我怀疑它可能是例如/some/dir/filename,其中 /some/dir 不存在。 @WédneyYuri OP 没有要求以读写模式打开文件... 我确实想到了这种可能性,所以我在该行代码之前创建了目录。 ***.com/questions/25924720/filenotfounderror-errno-2, ***.com/questions/22282760/…, ***.com/questions/28198915/… 【参考方案1】:

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

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

【讨论】:

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

以上是关于Python3.4:以“w”模式打开文件仍然给我 FileNotFounderror [重复]的主要内容,如果未能解决你的问题,请参考以下文章

open() 函数以 w+ 模式打开文件

Python笔记文件常见用法

文件操作的常用方法和使用

python学习笔记4-python文件操作

Python之文件操作

基于python的文件处理