我试图在IDLE中打开一个txt文件,但它给了我一个错误。 我无法弄清楚我的文件名中的f会发生什么,或者为什么单个' \'在错误消息中变为double。
>>>f=open('D:\programs\python 2.7.10\programs\foo.txt','r')
Traceback (most recent call last):
File "<pyshell#94>", line 1, in <module>
f=open('D:\programs\python 2.7.10\programs\foo.txt','r')
IOError: [Errno 22] invalid mode ('r') or filename: 'D:\\programs\\python 2.7.10\\programs\x0coo.txt'
答案 0 :(得分:8)
反斜杠用于转义序列 - 在您的情况下,罪魁祸首是\f
,它是换页符。您还可以在现代Windows系统上使用正斜杠以及替代方法。
使用原始字符串:
f=open(r'D:\programs\python 2.7.10\programs\foo.txt','r')
理想情况下,您应该使用with
语句,以便在出现异常或with块退出时自动关闭文件,例如:
with open(r'D:\programs\python 2.7.10\programs\foo.txt','r') as f:
# do stuff with `f`
答案 1 :(得分:-2)
你的路径中有一个有趣的角色“\ x0c”。它的十六进制“f”。 Python不明白。这就是ASCII给出错误的原因。将您的文件重命名为更好的文件,你会没事的。