我正在尝试使用文件上下文管理器写入尚不存在的文件。
a=open ('C:/c.txt' , 'w')
以上不成功。如果文件已经存在,我将如何创建一个文件?
答案 0 :(得分:30)
是的,'w'
被指定为创建新文件 - 正如the docs所述,
'w'用于写入(截断文件 如果已经存在),
(明确推断它不允许存在)。请详细说明确切的追溯,而不仅仅是您自己的摘要,因为细节很重要 - 例如如果您使用的实际路径不同,那么缺少的可能是驱动器或某个中间目录;或者可能存在许可问题。
答案 1 :(得分:4)
[编辑反映问题很可能不会反向斜线]
如果我理解正确,您希望自动为您创建文件,对吗?
在写入模式下打开会为您创建文件。如果你告诉我们你得到的确切错误,那就更清楚了。这可能是因为你没有权限用C写作:。
我之前曾建议可能是因为正斜杠,并表示OP可以尝试:
a = open(r'C:\c.txt', 'w')
请注意文件路径前的 r ,表示原始模式(即反斜杠不会被解释为特殊)。
然而,正如Brian Neal指出的那样(以及其他人,在别处评论),这可能不是错误的原因。我只是出于历史目的将它保存在这里。
答案 2 :(得分:3)
您很可能正在尝试写入不存在的目录或您没有写入权限的目录。
如果你想写信给C:\foo\bar\foobar.txt
,那么请确保你有C:\foo\bar\
存在(如果权限在Windows上运行,请确保你有权在那里写)。
现在,当您以写入模式打开文件时,应该创建一个文件。
答案 3 :(得分:0)
如果您询问在文件不存在时如何收到警告,则需要明确检查该文件。
请参阅here