使用chardet模塊獲取文件的編碼格式,進而正確的讀取文件內容
阿新 • • 發佈:2019-02-04
onf txt 文件內容 我們 gbk print 讀取 odin gb2312
import chardet ‘‘‘ 不同的文件編寫的時候,會有不同的編碼格式,有的用utf-8進行的編碼,有的呢用的是gbk進行的編碼。 在我們讀取文件的時候,我們實現並不知情這個當前讀取的文件是用的什麽編碼方式進行的存儲。所以就要用的chardet模塊 chardet.detect(文件對象),在打開文件的時候,用rb或者wb進行打開。然後將文件對象通過chardet模塊獲取它當時編碼的格式 然後獲取文件的時候,decode解碼的時候,通過decode(編碼格式)進行解碼,展現。 ‘‘‘ # f=open(‘test1.txt‘,‘w‘,encoding = ‘utf-8‘) # f.write(‘你好,我好大減價好‘) # f=open(‘test2.txt‘,‘w‘,encoding =‘gbk‘) # f.write(‘你好,我好大減價好‘) f=open(‘test2.txt‘,‘rb‘) #先通過二進制將文件打開 res= f.read() print(res) # b‘\xc4\xe3\xba\xc3\xa3\xac\xce\xd2\xba\xc3\xb4\xf3\xbc\xf5\xbc\xdb\xba\xc3‘ tt =chardet.detect(res) #通過chardet模塊,獲取打開的文件對象是什麽編碼格式 print(tt) #{‘encoding‘: ‘GB2312‘, ‘confidence‘: 0.99, ‘language‘: ‘Chinese‘} #拿到編碼格式後,將文件decode解碼 print(res.decode(‘gbk‘)) #你好,我好大減價好
使用chardet模塊獲取文件的編碼格式,進而正確的讀取文件內容