python 解決讀取文件時格式不支持的總結

目前在作的項目中,有一個列表用到的數據沒有找到能直接知足需求的數據,給到個人文件裏面是一張sql表,須要本身從sql表中,洗出本身須要的數據,因而想到了Python.python

在使用python讀取文件的時候,報了下面的錯誤:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb1 in position 0: invalid start byte.sql

網上一開始查到帖子說是編碼格式不對,須要在python 文件的頂上添加 # codeing= utf-8,以支持中文編碼,因爲給到的sql 文件中,確實含有中文,因而就加上了上面的utf-8的支持,滿懷但願的執行Python程序,結果仍是報了一樣的錯。vim

通過一番查找,找到了真正的解決方法,就是文件的編碼格式不對,須要在文件讀取的時候設置正確的編碼格式,或者直接修改文件的編碼格式爲程序默認支持的格式。解決方法以下:編輯器

一、查看文件的編碼格式: vim/vi編輯器(進入esc命令模式),執行 set fileencoding,查看文件的編碼格式,在Python程序中把文件讀取時的格式設置爲該編碼格式,即能正確讀取文件。
二、更改文件的編碼格式: vim/vi編輯器(進入esc命令模式),執行命令, set fileencoding=utf-8,而後回車,此時咱們將文件的格式改爲了utf-8格式的了,使用utf-8讀取,就能正確的讀出文件。

總結編碼

一、在Python文件頂部添加 `#encoding=utf-8`,只是設置當前Python文件支持中文的輸入,並不能真正解決讀取的文件的編碼格式不支持的問題。
二、遇到讀取的文件格式不支持的狀況,正確的的作法仍是,查看文件真正的編碼格式,在程序讀取的文件的時候,設置正確的編碼格式;或者修改文件的編碼格式爲咱們程序支持的格式。
相關文章
相關標籤/搜索