Python 如果不存在则不创建文件

Python doesn't create file if not existing

我不知道如何创建不存在的文件。我尝试了以下操作,但我收到文件不存在的错误消息。

请指导。

f=open('c:\Lets_Create_Malware\output.txt', 'r+')

f=open('c:\Lets_Create_Malware\output.txt', 'w+')

f=open('c:\Lets_Create_Malware\output.txt', 'a+')

f=open('c:\Lets_Create_Malware\output.txt', 'r')

f=open('c:\Lets_Create_Malware\output.txt', 'w')

f=open('c:\Lets_Create_Malware\output.txt', 'a')

使用双反斜杠:

f=open('c:\Lets_Create_Malware\output.txt', 'w+')

来自docs

The backslash (\) character is used to escape characters that otherwise have a special meaning, such as newline, backslash itself, or the quote character.

鉴于您指定的确切路径,至少您的一些示例应该有效(除非 c:\Lets_Create_Malware 路径不存在,这会导致您的所有测试增加混乱失败案例)。

根据您的示例,反斜杠在这里不是问题,因为被修改的字符并不特殊:

f=open('c:\Lets_Create_Malware\output.txt', 'w')

有效,因为 \L 和 \o 没有特殊含义,因此按字面意思使用(如果文件不存在,'w' 和 'a' 标志将创建文件)。

然而,另一条路:

f=open('c:\Lets_Create_Malware\badname.txt', 'w')

将失败:

IOError: [Errno 22] invalid mode ('w') or filename: 'c:\Lets_Create_Malware\x08adname.txt'

因为该文件名的 \b 部分被翻译为响铃字符(ctrl-b 或 \x08)。

有两种方法可以避免此问题:在字符串前面加上 r 原始字符串修饰符(例如,r'foo\bar'),或者确保每个反斜杠都已转义 (\) .为此,最好使用 os.path 模块中的 os.path.join()