您好,登錄后才能下訂單哦!
小編給大家分享一下Python3如何解決讀取中文文件txt編碼的問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
問題描述
嘗試用Python寫一個Wordcloud的時候,出現了編碼問題。
照著網上某些博客的說法添添改改后,結果是變成了“UnicodeDecodeError: ‘utf-8' codec can't decode byte…”這個錯誤。
搗鼓了一天啊,TXT(此處為本人現下內心表情)。最后,干脆寫個最簡單的文件讀取,竟然還是報錯。于是就考慮是不是txt的編碼問題,因為讀取的txt文件是在Mac上面新建的純文本文件,一時沒找到在哪里查看編碼,最后拷貝到Windows系統上,查看了txt文件的編碼,竟然是ASCII,不是我最愛的utf-8,Mac你辜負了我對你的一番信任啊!ε(┬┬﹏┬┬)3
解決方法
將txt文件的編碼格式改為utf-8即可
此外,在打開文件的時候,要加上第三個參數encoding=‘utf8'(沒有橫杠)。
with open('./test3.txt','r',encoding='utf8') as fin: for line in fin.readlines(): line = line.strip('\n')
下面附上第一次成功顯示的詞云的源碼(參考網上他人的,注釋很詳細)
import jieba import jieba.analyse from matplotlib import pyplot as plt from scipy.misc import imread from wordcloud import WordCloud,STOPWORDS,ImageColorGenerator # 1.讀取數據 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,#設置最大文字數 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編碼的問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。