当我们用python访问一个中文命名的文本时,经常会遇到如下错误:
file open error: [Errno 2] No such file or directory: '\xe6\xb5\x8b\xe8\xaf\x95.txt'
例如下面的代码:
# coding: UTF-8
import os
try:
fin=open('测试.txt','r')
except IOError,e:
print "file open error:",e
else:
for eachline in fin:
print eachline,
fin.close()
这是由于python默认的编码格式为unicode。
因此我们需要将GBK格式的‘测试’解码为“UTF-8”,如下:
# coding: UTF-8
import os
filename='测试.txt'
try:
fin=open(filename.decode('UTF-8'),'r')
except IOError,e:
print "file open error:",e
else:
for eachline in fin:
print eachline,
fin.close()
这样就可以正常访问文件了: