windows使用gbx(gb2312,gbk,gb18030我也不知道是哪个)对文件名及文件路径进行编码保存。打开文件的函数中使用诸如open(filename.encode('gbk'))可以很好的解决。
#coding:utf8
if __name__ == '__main__':
srcfile = r"D:/测试路径/测试文件.txt"
f = open(srcfile.decode('utf8').encode('gbk'))
for text in f.readlines():
print text.decode('gbk')
f.close()
或者:
#coding:utf8
if __name__ == '__main__':
srcfile = u"D:/测试路径/测试文件.txt"
f = open(srcfile.encode('gbk'))
for text in f.readlines():
print text.decode('gbk')
f.close() 上述两种方法均可。
另外,不要下面被这句话干扰:
print text.decode('gbk') 它只表示文件内容是用gbk编码的。更多内容可见
http://my.oschina.net/iuranus/blog/262914
![]()
补充说明:这里这样写也是可以打开的:
srcfile = u"D:/测试路径/测试文件.txt"
f = open(srcfile) 但是在使用opencv库时,cv2.imread(srcfile),srcfile必须以gbk编码(srcfile.encode('gbk'))才能打开,同时要注意是unix风格的'/',而不是'\'。
本文介绍在Windows环境下如何处理GBK编码的文件路径,包括使用Python打开文件的方法,并特别指出在使用opencv库时应注意的问题。
2万+

被折叠的 条评论
为什么被折叠?



