Python讀取檔案編碼及內容

2021-08-02 20:01:21 字數 644 閱讀 2116

最近做乙個專案,需要讀取檔案內容,但是檔案的編碼方式有可能都不一樣。有的使用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...