写入模式会创建新文件吗?
我正在尝试使用文件上下文管理器来写入一个还不存在的文件。
a=open ('C:/c.txt' , 'w')
上面的做法没有成功。如果文件已经存在,我该如何创建一个文件来写入呢?
4 个回答
3
你很可能是在尝试写入一个不存在的文件夹,或者是一个你没有写入权限的文件夹。
如果你想写入 C:\foo\bar\foobar.txt
,那么首先要确保 C:\foo\bar\
这个文件夹是存在的(另外,如果Windows上有权限设置,确保你有权限在这里写入)。
现在,当你以写入模式打开这个文件时,应该会创建一个新文件。
4
[编辑说明:问题可能与正斜杠和反斜杠无关]
如果我理解没错的话,你是想让文件自动为你创建,对吧?
用写入模式打开文件确实会为你创建这个文件。如果你能告诉我们具体的错误信息,那就更清楚了。可能是因为你没有权限在C盘写入文件。
我之前提到过,可能是因为正斜杠的问题,并建议提问者可以试试:
a = open(r'C:\c.txt', 'w')
注意文件路径前面的r,这表示原始模式(也就是说,反斜杠不会被当作特殊字符处理)。
不过,正如Brian Neal和其他人所指出的,这可能并不是错误的原因。我把这段保留在这里只是为了记录历史。
30
是的,'w'
这个选项是用来创建一个新文件的——就像文档里说的那样,
'w'表示写入(如果文件已经存在,会把它清空),
(这明显说明了文件可以是不存在的)。请提供具体的错误追踪信息,而不是你自己的总结,因为细节很重要——比如,如果你使用的实际路径不同,可能缺少的是驱动器或者某个中间文件夹;或者可能是权限问题。