1. 程式人生 > 其它 >Python錯誤排除

Python錯誤排除

使用pandas的read_excel函式讀取.xls格式的Excel檔案,部分檔案提示錯誤

'utf-16-le' codec can't decode bytes

處理方法主要如下:

  1. 把xls另存為xlsx就可以正常讀取。測試可行,但檔案太多,也不知道哪個會出現錯誤,批量不可信。
  2. 使用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()