Python 打开中文文件

 

 

目录

 [隐藏

经验

  • 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 打开中文文件]所有用到的引用信息,向这些伟大的家伙致敬:

  1. 跳转^ Python - Python Chinese Forum (), 见识于2013-6-10 9:50
  2. 跳转^ python处理中文文件名(中文路径)问题? - CSDN论坛 - CSDN.NET, 见识于2013-6-10 9:48
  3. 跳转^ python中读写文件及中文编码处理方法_我的笔记本_百度空间, 见识于2013-6-10 9:45

分类