python讀取文字txt檔案亂碼問題

2022-09-03 23:12:19 字數 1302 閱讀 6442

python2的編碼實在是個頭疼的問題,編碼問題也將作為乙個長期的話題,遇到問題隨時補充。

1

import

chardet

2from wordcloud import

wordcloud

3import

matplotlib.pyplot as plt

45 with open("

c:\\users\\fyc\\desktop\\json.txt

", "r"

) as f:

6 text =f.read()

7 type =chardet.detect(text)

8 text1 = text.decode(type["

encoding"])

9 text2 = ""

.join(text1)

10print

text

11print

text1

12print

text2

1314 wordcloud =wordcloud(

15 background_color="

white",

16 width=1000,

17 height=860,

18 margin=2).generate(text2)

1920

plt.imshow(wordcloud)

21 plt.axis("

off"

)22 plt.show()

我們只關注5,6,7,8這四行**,我在14行打了斷點,觀察讀取的內容

很明顯,直接讀取,text是str型別,完全是亂碼,text1做了處理,顯示正常。

在這我們隆重介紹 python 內建模組  chardet模組,編碼檢測。這個模組可以檢測出一行字元是什麼編碼,我們看一下text的編碼,如下:

chardet模組的detect方法返回乙個字典,其中的「encoding",明顯的指出,這個是」gb2312"編碼,接下來我們會心一笑,可以用decode來解碼了,解碼完應該就是正常顯示了。

所以我們用了上面的這一句,那麼今後所有的讀取檔案地方,在顯示之前,我們都可以用chardet檢測一下字串的編碼,相應解碼。就可以避免檔案亂碼的情況了

Python 讀取txt文字檔案

python的文字檔案的內容讀取中,有三類方法 read readline readlines 這三種方法各有利弊。read read 的弊端 readline readline 的弊端 readlines readlines 的利端 readlines 的弊端 最簡單 最快速的逐行處理文字的方法 ...

Python 讀取txt文字檔案

python的文字檔案的內容讀取中,有三類方法 read readline readlines 這三種方法各有利弊。read 是最簡單的一種方法,一次性讀取檔案的所有內容放在乙個大字串中,即存在記憶體中 file object open test.txt 不要把open放在try中,以防止開啟失敗,...

Python 讀取TXT檔案

一 開啟檔案 f open filename,access mode r buffering 1 filename 檔名 access mode 開啟方式,r讀,w寫,a追加,r w a 都是以讀寫方式開啟,rb二進位制讀,wb二進位制寫,rb wb ab 二進位制讀寫 buffering 預設值 ...