首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果不存在Python就不会创建文件

如果不存在Python就不会创建文件
EN

Stack Overflow用户
提问于 2016-07-06 00:52:12
回答 2查看 1.8K关注 0票数 0

我不知道如何创建不存在的文件。我试着遵循,但我得到的错误,文件不存在。

请指点。

代码语言:javascript
复制
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')
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-06 00:54:47

使用双反斜杠:

代码语言:javascript
复制
f=open('c:\\Lets_Create_Malware\\output.txt', 'w+')

来自文档

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

票数 2
EN

Stack Overflow用户

发布于 2016-07-06 01:15:27

考虑到您指定的确切路径,至少有一些示例应该有效(除非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或\x08)。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38214952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档