*** 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 ?成功了!