Python3 解決讀取中文文件txt編碼的問題
問題描述
嘗試用Python寫一個Wordcloud的時候,出現(xiàn)了編碼問題。
照著網(wǎng)上某些博客的說法添添改改后,結(jié)果是變成了“UnicodeDecodeError: ‘utf-8' codec can't decode byte…”這個錯誤。
搗鼓了一天啊,TXT(此處為本人現(xiàn)下內(nèi)心表情)。最后,干脆寫個最簡單的文件讀取,竟然還是報錯。于是就考慮是不是txt的編碼問題,因為讀取的txt文件是在Mac上面新建的純文本文件,一時沒找到在哪里查看編碼,最后拷貝到Windows系統(tǒng)上,查看了txt文件的編碼,竟然是ASCII,不是我最愛的utf-8,Mac你辜負了我對你的一番信任??!ε(┬┬﹏┬┬)3
解決方法
將txt文件的編碼格式改為utf-8即可
此外,在打開文件的時候,要加上第三個參數(shù)encoding=‘utf8'(沒有橫杠)。
with open('./test3.txt','r',encoding='utf8') as fin: for line in fin.readlines(): line = line.strip('\n')
下面附上第一次成功顯示的詞云的源碼(參考網(wǎng)上他人的,注釋很詳細)
import jieba import jieba.analyse from matplotlib import pyplot as plt from scipy.misc import imread from wordcloud import WordCloud,STOPWORDS,ImageColorGenerator # 1.讀取數(shù)據(jù) with open("./test.txt","r",encoding="utf8") as f: text = f.read() # 2.基于 TextRank 算法的關鍵詞抽取,top50 keywords = jieba.analyse.textrank(text, topK=50, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v')) file = ",".join(keywords) # 指定中文字體,不然中文顯示框框 font = r'./HYQiHei-25J.ttf' print(file) # 指定背景圖,隨意 image = imread('cake.jpg') wc = WordCloud( font_path=font, background_color='white',#背景色 mask=image,#背景圖 stopwords=STOPWORDS,#設置停用詞 max_words=100,#設置最大文字數(shù) max_font_size=100,#設置最大字體 width=800, height=1000, ) #生成詞云 image_colors = ImageColorGenerator(image) wc.generate(file) # 使用matplotlib,顯示詞云圖 plt.imshow(wc) #顯示詞云圖 plt.axis('off') #關閉坐標軸 plt.show() # 保存圖片 wc.to_file('news.png')
以上這篇Python3 解決讀取中文文件txt編碼的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
django-xadmin根據(jù)當前登錄用戶動態(tài)設置表單字段默認值方式
這篇文章主要介紹了django-xadmin根據(jù)當前登錄用戶動態(tài)設置表單字段默認值方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03LRUCache的實現(xiàn)原理及利用python實現(xiàn)的方法
LruCache 是 Android 的一個內(nèi)部類,提供了基于內(nèi)存實現(xiàn)的緩存,而下面這篇文章主要給大家介紹了關于LRUCache的實現(xiàn)原理以及利用python實現(xiàn)的方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。2017-11-11基于Pyinstaller打包Python程序并壓縮文件大小
這篇文章主要介紹了基于Pyinstaller打包Python程序并壓縮文件大小,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-05-05