写入模式会创建新文件吗?

24 投票
4 回答
84060 浏览
提问于 2025-04-16 00:17

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

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'表示写入(如果文件已经存在,会把它清空),

(这明显说明了文件可以是不存在的)。请提供具体的错误追踪信息,而不是你自己的总结,因为细节很重要——比如,如果你使用的实际路径不同,可能缺少的是驱动器或者某个中间文件夹;或者可能是权限问题。

撰写回答