Python3 中文檔案讀寫

2021-07-28 14:00:22 字數 1312 閱讀 5877

字串在python內部的表示是unicode編碼,因此,在做編碼轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。

在新版本的python3中,取消了unicode型別,代替它的是使用unicode字元的字串型別(str),字串型別(str)成為基礎型別如下所示,而編碼後的變為了位元組型別(bytes)但是兩個函式的使用方法不變:

decode

encode

bytes--

----> str(unicode)--

---->bytes

u = '中文'

#指定字串型別物件u

str = u.encode('gb2312') #以gb2312編碼對u進行編碼,獲得bytes型別物件str

u1 = str.decode('gb2312')#以gb2312編碼對字串str進行解碼,獲得字串型別物件u1

u2 = str.decode('utf-8')#如果以utf-8的編碼對str進行解碼得到的結果,將無法還原原來的字串內容

f = open('test.txt','r')

s = f.read() #讀取檔案內容,如果是不識別的encoding格式(識別的encoding型別跟使用的系統有關),這裡將讀取失敗

'''假設檔案儲存時以gb2312編碼儲存'''

u = s.decode('gb2312') #以檔案儲存格式對內容進行解碼,獲得unicode字串

'''下面我們就可以對內容進行各種編碼的轉換了'''

str = u.encode('utf-8')#轉換為utf-8編碼的字串str

str1 = u.encode('gbk')#轉換為gbk編碼的字串str1

str1 = u.encode('utf-16')#轉換為utf-16編碼的字串str1

python給我們提供了乙個包codecs進行檔案的讀取,這個包中的open()函式可以指定編碼的型別:

import codecs 

f = codecs.open('text.text','r+',encoding='utf-8')#必須事先知道檔案的編碼格式,這裡檔案編碼是使用的utf-8

content = f.read()#如果open時使用的encoding和檔案本身的encoding不一致的話,那麼這裡將將會產生錯誤

f.write('你想要寫入的資訊')

f.close()

python教程 讀寫中文檔案

字串在python內部的表示是 unicode編碼,因此,在做編碼轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字串解碼 decode 成unicode,再從unicode編碼 encode 成另一種編碼。decode的作用是將其他編碼的字串轉換成unicode編碼,如str1.de...

C 讀寫中文檔案

using system.text 輕鬆解決c 讀寫檔案遇到的中文亂碼問題 c 寫入 讀出文字檔案 string filename c 111.txt streamreader sr new streamreader filename 改為streamreader sr new streamread...

Python3 讀取中文檔案txt編碼問題

嘗試用python寫乙個wordcloud的時候,出現了編碼問題。照著網上某些部落格的說法添添改改後,結果是變成了 unicodedecodeerror utf 8 codec can t decode byte 這個錯誤。搗鼓了一天啊,txt 此處為本人現下內心表情 最後,乾脆寫個最簡單的檔案讀取...