python處理檔案編碼

2022-09-04 01:21:10 字數 1242 閱讀 8921

對於儲存自然語言的檔案,有可能採用了不同的編碼,例如漢字的編碼就有多種,utf-8,gb2312,gb18030,iso-8859等字元編碼格式。當處理各種檔案的時候,就需要在各種檔案格式之間轉換,由於utf-8字元編碼格式相容於ascii,且多位元組編碼,不存在大小端的問題,可以使用已有的c語言庫字串處理函式,處理起來較為方便。現在來看看將其他格式(gb2312,gb18030)轉換成utf-8。

使用python處理檔案格式轉換,需要使用codecs模組。使用是,先import codecs 。在codecs可以使用open,lookup函式來開啟檔案。open(filename,mode,encoding,errors,buffering),需要給出filename,mode和encoding,其餘的引數有預設值,不用管的。encoding就是要開啟的檔案的字元編碼方式。當從檔案讀出的內容使用的就是python的內部標示,即unicode標示法。lookup(encoding),返回乙個codecinfo類的例項,encoding是字元編碼名稱,('utf-8','gb2312')。

lookup返回值含有相當多的內容,例項中的encode,decode,用來進行格式轉換。encode用於將內部的ucs-4轉換成呼叫lookup是給出的encoding格式。decode用於將呼叫lookup的encoding格式的字串轉換成ucs-4格式的字串。

lookup返回的例項中可以使用streamreader,streamwriter兩個類,明顯reader,writer都是用於按照encoding來讀取和寫入相應的檔案,引數就是乙個file-like的物件了。reader是按照encoding從stream讀入資料,返回的是unicode字串。writer將unicode字串轉換成encoding格式寫入stream。必須獲取streamreader類得乙個例項,例如a= x.streamreader(file-object) ,然後就可以使用a來完成相應的讀功能。

在codecs模組中,還有decode和encode兩個函式,decode(obj,encoding),這個函式的作用就是將按照encoding編碼的obj轉換成unicode。encode(obj,encoding),這個函式的作用就是將按照ucs-4編碼的obj轉換成encoding格式。

事實上codecs也提供了一些方便的函式,例如'utf_32_be_decode', 'utf_32_be_encode', 'utf_32_decode', 'utf_32_encode', 'utf_32_ex_decode',等等。可以使用嚴格的decode,encode來完成相同的功能。

Python 字元編碼與檔案處理

目前計算機記憶體的字元編碼都是unicode,目前國內的windows作業系統採用的是gbk。python2預設的字元編碼方式是ascii python3預設的字元編碼方式是unicode py檔案頭部的 coding utf 8是幫助python識別.py檔案的編碼方式,故在寫.py檔案時要注意檔...

python 字元編碼與檔案處理

字元編碼 計算機工作就要通電,也就是說 電 驅使計算機幹活,而電只有高電壓 二進位制1 低電壓 二進位制0 也就是說計算機只認數字。程式設計的目的就是讓計算機幹活,程式設計的結果就是一堆字元,也就是我們程式設計最終實現的是 一堆字元驅動計算機幹活呢。1 python直譯器是執行檔案內容的,因而pyt...

python字元編碼和檔案處理

一.了解字元編碼的知識儲備 1.文字編輯器訪問檔案的原理 nodepad python,word 2.python直譯器執行py檔案的原理,python,test.py 3.過程 文字編輯器 乙個檔案的三個過程 cpython直譯器執行乙個py檔案的三個過程 4.字元編碼 字元編碼指的是字元轉換成或...