Python 打开中文文件
目录
[隐藏]
- 2.1 Python - Python Chinese Forum () 沿途见识[1]
- 2.2 python处理中文文件名(中文路径)问题? - CSDN论坛 - CSDN.NET 沿途见识[2]
- 2.3 python中读写文件及中文编码处理方法_我的笔记本_百度空间 沿途见识[3]
经验
- idle里不行,看起来是它自己的问题-处理编码的问题
- 在shell里完全没问题
>>> open("/Users/sen/tools/txt2wiki/测试页.txt")
<open file '/Users/sen/tools/txt2wiki/\xe6\xb5\x8b\xe8\xaf\x95\xe9\xa1\xb5.txt', mode 'r' at 0x1005a9b70>
>>> f=open("/Users/sen/tools/txt2wiki/测试页.txt")
>>> f.read
<built-in method read of file object at 0x1005a9c00>
>>> f.read()
'\xe6\xb5\x8b\xe8\xaf\x95\xe5\x86\x85\xe5\xae\xb9'
见识
Python - Python Chinese Forum () 沿途见识[1]
般在交互环境下我不是这样做的。首先交互环境本身有编码,象我的可能是
cp936就是gbk编码。这样,a='中国'得到的是一个gbk编码,但你直接写成a=u'中
国'这样并不能得到正确的unicode编码。'中国'的ascii表示为:
'\xd6\xd0\xb9\xfa',它实际上是把这四个字节转成了unicode。而正确的'中国'
的unicode应该是u'\u4e2d\u56fd',那么简单地在字符前加上u并不能实现转换。
我的做法是:
a='中国'
b=unicode(a,
'cp936')
这样才能得到正确的unicode编码。繁体中文也应该一样,不过我就不知道是何种
编码了。可以:
>>> import locale
>>> print locale.getdefaultlocale()
('zh_CN',
'cp936')
至于繁简中文都放在utf-8中其实很简单,因为unicode已经包含了繁简中文的编
码,只要把utf-8转成unicode就可以了。但那样,要么把unicode转成简体码,要
么转成繁体码,我不清楚如何只转部分编码。既然那样,建议就使用utf-8好了。
Shau-Hung Hsieh wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
python处理中文文件名(中文路径)问题? - CSDN论坛 - CSDN.NET 沿途见识[2]
如有一路径"e:/software/测试.txt"
需要通过pyhon读/写 "测试.txt"文件,可以采用下面的方法:
ipath = "e:/software/测试.txt"
uipath = unicode(ipath , "utf8")
然后用"uipath"经过编码后的路径去open()即可。
python中读写文件及中文编码处理方法_我的笔记本_百度空间 沿途见识[3]
4 f = codecs.open('c:/intimate.txt','a','utf-8')
5 f.write(u'中文')
6 s = '中文'
7 f.write(s.decode('gbk'))
8 f.close()
引用信息
以下是[Python 打开中文文件]所有用到的引用信息,向这些伟大的家伙致敬:
- 跳转^ Python - Python Chinese Forum (), 见识于2013-6-10 9:50
- 跳转^ python处理中文文件名(中文路径)问题? - CSDN论坛 - CSDN.NET, 见识于2013-6-10 9:48
- 跳转^ python中读写文件及中文编码处理方法_我的笔记本_百度空间, 见识于2013-6-10 9:45
分类: