python读取中文(日文,韩文)文件(codecs.open与普通open的区别和使用方法)

读取文件,首先需要知道:一般我们使用open打开读取文件时,得到的结果一般是已经编码后的结果,编码的方式就是原先文本的编码方式。比如用utf-8格式的文件,得到的结果存入列表中为utf-8格式。如果想要查看unicode编码,我们需要对utf-8进行解码,比如:(如下例子):

print ['\xec\xa0\x95']
print ['\xec\xa0\x95'.decode("utf-8")]
print '\xec\xa0\x95'
print u'\uc815'

output:
['\xec\xa0\x95']
[u'\uc815']
정
정

接下来如果我们想要其他的编码形式,需要用到encode进行编码:如下:

print ['\xec\xa0\x95'.decode("utf-8").encode("utf-16-le")]

output:
['\x15\xc8']

如果想要转换格式写入其他文件,过程如下:

input文件(gbk, utf-8...)   ----decode----->   unicode  -------encode------> output文件(gbk, utf-8...)

如果我们想用codecs,从打开文件的角度来说,codecs.open打开文件后,将结果直接保存为了unicode 的形式,因此其相当于比直接open多了一个解码的过程,如果我们想转换格式,直接用encode即可。关于codecs.write,参考:https://www.cnblogs.com/buptldf/p/4805879.html

猜你喜欢

转载自blog.csdn.net/yg838457845/article/details/81137026