python 編程語言在操作文件編碼格式的應(yīng)用
本文主要是對python 編程語言操作不同文件的編碼格式的文件時,所需用到的相關(guān)實(shí)際應(yīng)用方案的介紹,以及python 編程語言的相關(guān)代碼的示例,以下就是文章的相關(guān)內(nèi)容的具體介紹。
建立一個文件test.txt,文件格式用ANSI,內(nèi)容為:abc中文用python來讀取
- # coding=gbk
- print open("Test.txt").read()
結(jié)果:abc中文把文件格式改成UTF-8:顯然,這里需要解碼:
- # coding=gbk
- import codecs
- print open("Test.txt").read().decode("utf-8")
結(jié)果:abc中文上面的test.txt我是用Editplus來編輯的,但當(dāng)我用Windows自帶的記事本編輯并存成UTF-8格式時,運(yùn)行時報(bào)錯:
- Traceback (most recent call last):
- File "ChineseTest.py", line 3, in
- print open("Test.txt").read().decode("utf-8")
- UnicodeEncodeError: 'gbk' codec can't encode
character u'\ufeff' in position 0: illegal multibyte
sequence
原來,某些軟件,如notepad,在保存一個以UTF-8編碼的文件時,會在文件開始的地方插入三個不可見的字符(0xEF 0xBB 0xBF,即BOM)。因此我們在讀取時需要自己去掉這些字符,python中的codecs module定義了這個常量:
- # coding=gbk
- import codecs
- data = open("Test.txt").read()
- if data[:3] == codecs.BOM_UTF8:
- datadata = data[3:]
- print data.decode("utf-8")
結(jié)果:abc中文以上的文章就是對 python 編程語言操作不同文件的編碼格式的文件的實(shí)際操作步驟介紹。
【編輯推薦】