Python錯誤排除
阿新 • • 發佈:2022-12-08
使用pandas的read_excel函式讀取.xls格式的Excel檔案,部分檔案提示錯誤
'utf-16-le' codec can't decode bytes
處理方法主要如下:
- 把xls另存為xlsx就可以正常讀取。測試可行,但檔案太多,也不知道哪個會出現錯誤,批量不可信。
- 使用xlwings,批量可行
import pandas as pd import xlwings as xw import re import os path = r'目錄' files = [path + '\\' + i for i in os.listdir(path)] app = xw.App(visible=False, add_book=False) # 介面設定 app.display_alerts = False # 關閉提示資訊 app.screen_updating = False # 關閉顯示更新 title = [] for file in files: num_file = file.split('\\')[6].split('.')[0] # 檔名前的數字 wb = app.books.open(file) # 使用xlwings庫 cell = wb.sheets('sheet1').range('A1').value # (1,1)單元格 cell = re.sub(r'\n|/',r'',cell) # 換行、斜槓 替換 wb.close() title.append(cell) # 儲存表格的全名 name_nospace = re.sub(r'\d.*\d\s+|\s',r'',cell) # 刪除數字、空格 newname = path + '\\' + num_file + ' ' + name_nospace + '.xls' os.rename(file, newname) app.quit() allxlsname = path + '\\' + '0表格名彙總.txt' f = open(allxlsname, 'w', encoding='utf-8') f.write('\n'.join(title)) f.close()