如果不存在,Python不会创建文件

时间:2016-07-06 00:52:13

标签: python file read-write

我无法弄清楚如何创建不存在的文件。我试过跟随,但是我收到文件不存在的错误。

请指导。

UIScrollView

2 个答案:

答案 0 :(得分:2)

使用双反斜杠:

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

来自docs

  

反斜杠(\)字符用于转义具有特殊含义的字符,例如换行符,反斜杠本身或引号字符。

答案 1 :(得分:1)

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

在给出示例的情况下,反斜杠不是问题,因为被修改的字符并不特殊:

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

有效,因为\ L和\或者没有特殊含义,所以按字面意思使用(并且'和' a'标志将创建文件,如果它&& #39; s尚未出现。)

然而,另一条道路:

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.join()模块中的os.path