pandas讀取excel問題解答 python3-No CODEPAGE record, no encoding_override: will use 'ascii'

*** No CODEPAGE record, no encoding_override: will use 'ascii' 報錯信息

UnicodeDecodeError: 'ascii' codec can't decode byte 0xb6 in position 0: ordinal not in range(128)



前幾天在用 python3 pandas讀取舊的excel(2003版本)時, 遇到了這樣的報錯。

stackoverflow? 和百度都搜了搜。感覺還是找不到原因所在

參考了這個 改編碼的方式, workbook=xlrd.open_workbook('harvest.xls',encoding_override='cp1252')

encoding_override='cp1252'試了 , "ISO-8859-1"這編碼也試了,都不能成功。?

然而,這些excel ?在電腦上用微軟excel手工打開保存后,接著跑程序處理就沒問題了。

于是想到折中的辦法,用python 的os模塊喚起微軟程序 ?保存一遍試試,

但是太麻煩了(感興趣的朋友可自行嘗試)感覺。

最后冥思苦想出了: (ii 是excel文件名)

from ?xlutils.copy ? import ?copy

file1= xlrd.open_workbook(chuli_dir +'\\'+ii ,encoding_override=sys.getfilesystemencoding() )

file = copy(file1)

chulihou ='D:\處理表格\hc'+'\\'+ii

file.save('D:\處理表格\hc'+'\\'+ii)


新建個hc文件夾, 舊excel是 file1? ,用from xlutils.copy import ?copy ?,先用sys模塊的獲取當前文件編碼 。 來打開舊excel,然后 ?復制一份到 hc 目錄下,再從hc 目錄開始工作:?

? ? ? ?data_excel= pd.read_excel(chulihou ,dtype=str)

得到pandas 的dataframe 格式的data_excel ?成功了!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容