Python处理encoding的小技巧
用Python写过处理文本经常会遇到需要decoding或者encoding, 尤其是处理中文的时候。
encoding的问题处理起来是个脏活儿,报错不太容易看懂,网上相关资料不太好查。有同感?请继续读下去。
常规做法是读取文件的时候立刻decode, 所有的处理工作都用unicode,写会文件的时候encode. 但是等到读取的时候在处理的代码读/写起来都很别扭,感觉像穿上鞋以后袜子滑下来了…Python 3.1.1以上的版本解决了该问题。在Python 3.1.1中,打开文件可以加入encoding的参数:
file = open(filename, encoding='xxx')
啊,这样看起来终于舒坦了。 不同写如下的code了
file = open(filename) for line in file: decoded_line = line.decode('xxx') do something else 提倡使用utf8
(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)
《Python处理encoding的小技巧》的相关评论
以前的版本可以用codecs.open,也挺方便的 …
呵呵,我坚持使用 Python3 的很大一个原因就在于此!另外, Py3 的 str 不会像以前那样既有 decode 方法又有 encode 方法让我经常用错了。
Python3k开始对str做了调整,现在这方面和java保持一致了。
可以看下这篇
http://lukejin.javaeye.com/blog/598303