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的默认设置是不允许普通用户在根目录中写入文件。请注意,如果这些目录不存在,它将不会创建目录。