Я использую pandas с движком calamine для чтения Excel-файлов в формате .xls и .xlsx.
Столкнулась с проблемой, что некоторые excel-файлы повреждены, и при попытке их чтения возникает паника на уровне Rust с сообщением:
thread '<unnamed>' panicked at C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\calamine-0.24.0\src\cfb.rs:258:41:
slice index starts at 45368320 but ends at 43228735
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
pyo3_runtime.PanicException: slice index starts at 45368320 but ends at 43228735
Вот часть моего кода:
import pandas as pd
try:
excel_data = pd.read_excel(txt_file_path, skiprows=cnt_string, sheet_name=filename,
na_values=['NULL'], engine='calamine')
except Exception as e:
print(f'Ошибка при чтении файла {txt_file_path}: {e}')
Однако, перехват исключений через except Exception не помогает предотвратить аварийное завершение скрипта. Как правильно перехватить это исключение и обработать его, чтобы мой скрипт продолжал выполнение даже при ошибке чтения поврежденного файла?
Примечание: Я не хотела бы использовать альтернативную библиотеку для чтения Excel-файлов, так как это потребует значительных изменений в коде.