Python 如果不存在,写入模式是否创建新文件?

Python 如果不存在,写入模式是否创建新文件?,python,file-io,Python,File Io,我正在尝试使用文件上下文管理器写入一个尚不存在的文件 a=open ('C:/c.txt' , 'w') 上述做法并不成功。如果文件已经存在,我将如何创建用于写入的文件?如果您询问当文件不存在时如何发出警告,则需要明确检查该文件 请参见是,'w'被指定为创建一个新文件 “w”用于写入(截断文件 如果已经存在) (显然推断它是不允许存在的)。请显示准确的回溯,而不仅仅是您自己的摘要,因为细节很重要——例如,如果您使用的实际路径不同,则缺少的可能是驱动器或某个中间目录;或者可能存在权限问题。[编辑

我正在尝试使用文件上下文管理器写入一个尚不存在的文件

a=open ('C:/c.txt' , 'w')

上述做法并不成功。如果文件已经存在,我将如何创建用于写入的文件?

如果您询问当文件不存在时如何发出警告,则需要明确检查该文件


请参见

是,
'w'
被指定为创建一个新文件

“w”用于写入(截断文件 如果已经存在)


(显然推断它是不允许存在的)。请显示准确的回溯,而不仅仅是您自己的摘要,因为细节很重要——例如,如果您使用的实际路径不同,则缺少的可能是驱动器或某个中间目录;或者可能存在权限问题。

[编辑以反映问题可能不是正斜杠与反斜杠]

如果我理解正确,您希望自动为您创建文件,对吗

在写入模式下打开会为您创建文件。如果你告诉我们你得到的确切错误,那就更清楚了。可能是因为您没有权限使用C:编写

我之前曾建议可能是因为正斜杠,并表示OP可以尝试:

a = open(r'C:\c.txt', 'w')
注意文件路径前的r,表示原始模式(也就是说,反斜杠不会被解释为特殊)


然而,正如布赖恩·尼尔(Brian Neal)指出的(以及其他人在别处的评论),这可能不是错误的原因。我把它保存在这里只是出于历史目的。

您很可能试图写入一个不存在的目录或您没有写入权限的目录

如果您想写入
C:\foo\bar\foobar.txt
,请确保您有一个
C:\foo\bar\
(如果权限在Windows上工作,请确保您有在那里写入的权限)


现在,当您以写模式打开文件时,应该创建一个文件。

无需重新编写,对我来说效果很好。请补充您的问题:Python的哪个版本、您运行的平台(Windows?)以及确切的错误消息。“w”如果文件不存在,模式应自动创建该文件-请编辑您的问题,以包括您正在运行的特定命令/代码以及错误消息和结果回溯?谢谢。@all:很抱歉,错误被克服了。。这是windows vista中的权限问题,正如您所建议的那样……您可以尝试使用
w+
这不是正斜杠。他的代码片段在Windows上运行得很好。我后来想到了这一点。我仍在等待OP给出错误,但在此期间我将编辑我的答案。谢谢:)我的正斜杠有问题!谢谢,没有人说过这件事。我打赌这是一个权限问题。Vista和Windows 7的默认设置是不允许普通用户在根目录中写入文件。请注意,如果这些目录不存在,它将不会创建目录。