[python IO学习篇] [打开包含中文路径的文件]
2024-10-20 00:28:12
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风格的'/',而不是'\'。
最新文章
- 三维网格补洞算法(Radial Basis Function)
- C# 毕业证书打印《二》
- 20145337 《Java程序设计》第10周学习总结
- 更改EGit的user settings中默认的location
- hdu 5327 Olympiad
- cocos2d中两种移动的算法
- ibatis动态语句加and 和不加and
- 对话(VC_Win32)
- 五、Hive
- HDU1075-What Are You Talking About
- java多线程的基础-java内存模型(JMM)
- CodeForces 433C Ryouko's Memory Note (中位数定理)
- flume组件汇总 source、sink、channel
- day15 装饰器
- CS229 6.2 Neurons Networks Backpropagation Algorithm
- 【转】C#中virtual和abstract的区别
- 安装luasocket 的正确姿势
- 移动平台的WebApp之Meta标签
- 使用jQuery实时监听input输入值的变化
- [HNOI2002]跳蚤 【容斥】
热门文章
- apple-touch-icon-precomposed
- 假如m是奇数,且m>;=3,证明m(m² -1)能被8整除
- 【虚拟机-虚拟网络】使用 PsPing &; PaPing 进行 TCP 端口连通性测试
- HDU 1850 Being a Good Boy in Spring Festival 在春节做乖孩子(Nim博弈,微变形)
- POJ 1067 取石子游戏 (威佐夫博奕,公式)
- 不写画面的网页程序设计,Web API、Web Service、WCF Service
- cv2.threshold 阈值灰度
- 用python Image读图
- 【0624课外作业】将一个double类型的小数,四舍五入保留两位小数
- java 第11次作业:你能看懂就说明你理解了——this关键字