https://my.oschina.net/mcyang000/blog/289460
 
打开路径含有中文的文件时,要注意:
1 在windows对文件名编码是采用gbk等进行编码保存,所以要将文件路径先解码,在按gbk编码: 
字符串--解码成unicode--编码(注意str和unicode的转换)

with open(r"D:\我的文档\桌面\python\config.ini".decode('utf8').encode('gbk'),'rb') as f:
print f.read()

 
或者采用
#coding=utf-8 #当然这里要在前面设置系统的编码方式
with open(ur"D:\我的文档\桌面\python\config.ini".encode('gbk'),'rb') as f:  
 
或者with open(ur"D:\我的文档\桌面\python\config.ini",'rb') as f:
 
 
 
 
 
摘要: 在windows使用gbx(gb2312,gbk,gb18030我也不知道是哪个)对文件名及文件路径进行编码保存。打开文件的函数中使用诸如open(filename.encode('gbk'))可以很好的解决。另外路径分隔符要写Unix风格的'/',不要写'\'

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风格的'/',而不是'\'。

最新文章

  1. 三维网格补洞算法(Radial Basis Function)
  2. C# 毕业证书打印《二》
  3. 20145337 《Java程序设计》第10周学习总结
  4. 更改EGit的user settings中默认的location
  5. hdu 5327 Olympiad
  6. cocos2d中两种移动的算法
  7. ibatis动态语句加and 和不加and
  8. 对话(VC_Win32)
  9. 五、Hive
  10. HDU1075-What Are You Talking About
  11. java多线程的基础-java内存模型(JMM)
  12. CodeForces 433C Ryouko's Memory Note (中位数定理)
  13. flume组件汇总 source、sink、channel
  14. day15 装饰器
  15. CS229 6.2 Neurons Networks Backpropagation Algorithm
  16. 【转】C#中virtual和abstract的区别
  17. 安装luasocket 的正确姿势
  18. 移动平台的WebApp之Meta标签
  19. 使用jQuery实时监听input输入值的变化
  20. [HNOI2002]跳蚤 【容斥】

热门文章

  1. apple-touch-icon-precomposed
  2. 假如m是奇数,且m>=3,证明m(m² -1)能被8整除
  3. 【虚拟机-虚拟网络】使用 PsPing & PaPing 进行 TCP 端口连通性测试
  4. HDU 1850 Being a Good Boy in Spring Festival 在春节做乖孩子(Nim博弈,微变形)
  5. POJ 1067 取石子游戏 (威佐夫博奕,公式)
  6. 不写画面的网页程序设计,Web API、Web Service、WCF Service
  7. cv2.threshold 阈值灰度
  8. 用python Image读图
  9. 【0624课外作业】将一个double类型的小数,四舍五入保留两位小数
  10. java 第11次作业:你能看懂就说明你理解了——this关键字