問題:文件名含中文時,pd.read_excel讀取該文件報錯借卧,ascii碼無法解碼bytes
代碼示例:
raw_file='./doc/測試部考勤-10月-6樓.xls'
df_raw=pd.read_excel(raw_file,encoding_override='gbk')
錯誤:
定位:
1.查看read_excel文檔信息:
參數(shù)列表里沒有編碼或覆蓋編碼參數(shù)碌奉,所以沒法指定編碼格式為‘gbk’或者其他攀隔,所以即使excel里有中文時也會出現(xiàn)上面的解碼的錯誤
解決:
read_excel里的第一個參數(shù)是io:可以傳str,文件路徑脱羡,也可以傳文件對象找都,也可以是xlrd的workbook唇辨。
這里試下讀取xlrd的workbook。
代碼:
# 讀取原excel
raw_file='./doc/測試部考勤-10月-6樓.xls'
content=xlrd.open_workbook(filename=raw_file,encoding_override='gbk')
df_raw=pd.read_excel(content)
報錯:
需要顯示指定engine
查看read_excel的源碼能耻,定位到處理engine參數(shù)處:
可以看出需要指定engine為‘xlrd'赏枚。
修正代碼:
# 讀取原excel
raw_file='./doc/測試部考勤-10月-6樓.xls'
content=xlrd.open_workbook(filename=raw_file,encoding_override='gbk')
df_raw=pd.read_excel(content,engine='xlrd')
問題解決亡驰。