在python 2.7中打开文件的正确方法是什么?

时间:2015-06-09 21:05:33

标签: python python-2.7

我试图在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'

2 个答案:

答案 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给出错误的原因。将您的文件重命名为更好的文件,你会没事的。