最近做乙個專案,需要讀取檔案內容,但是檔案的編碼方式有可能都不一樣。有的使用gbk,有的使用utf8。所以在不正確讀取的時候會出現如下錯誤:
unicodedecodeerror: 'gbk' codec can't decode byte
而且當你使用rb模式讀取檔案時候,返回的結果通過django返回的json會出現下面錯誤:
typeerror: b'\xbc\x8c\xe6\x9c\xaa\xe6\x9d\xa5' is not json serializable
總之就是編碼不對,所以要先能識別檔案的編碼方式,然後根據此編碼方式進行對檔案編碼,最後返回檔案內容。
解決方法如下:
with open("your_file", 'rb') as fp:
file_data = fp.read()
result = chardet.detect(file_data)
file_content = file_data.decode(encoding=result['encoding'])
注: chardet是第乙個第三方庫,你需要自己使用pip進行安裝。
@完
Python讀取檔案編碼及內容
最近做乙個專案,需要讀取檔案內容,但是檔案的編碼方式有可能都不一樣。有的使用gbk,有的使用utf8。所以在不正確讀取的時候會出現如下錯誤 unicodedecodeerror gbk codec can t decode byte而且當你使用rb模式讀取檔案時候,返回的結果通過django返回的j...
python怎麼讀取檔案內容
1 read 一次讀取全部內容到記憶體。with open file.txt r as f print f.read with方式可以避免沒有關閉資源檔案產生錯誤 2 readlines with方式,逐行讀取。with open file.txt as lines for line in line...
python讀取未知編碼檔案
結合檢測編碼和讀取內容 參考文件 在開發日誌分析功能時,需要讀取不同編碼的檔案然後對檔案內容進行解析,那麼首先要解決的就是如何檢測編碼的問題。為了方便演示,先建立5個測試檔案 檔名對應編碼 utf8 file,utf8bom file,gbk file,utf16le file,utf16be fi...