Как обрабатывать исключение pyo3_runtime.PanicException при работе с библиотеками pandas и calamine?

Как можно обработать исключение, которое возникает при попытке чтения поврежденного Excel-файла при использовании pandas с движком Calamine?
  • 23 мая 2024 г. 10:01
Ответы на вопрос 2
Для обработки исключения pyo3_runtime.PanicException при работе с библиотеками pandas и calamine можно использовать конструкцию try-except:

```python
try:
    # Ваш код работы с pandas и calamine
except pyo3_runtime.PanicException as e:
    print("Произошла ошибка PanicException:", e)
```

Чтобы обработать исключение, которое возникает при попытке чтения поврежденного Excel-файла при использовании pandas с движком Calamine, можно также использовать конструкцию try-except:

```python
from calamine import open_workbook

try:
    excel_file = open_workbook('file.xlsx')
    df = excel_file.sheet_names[0].rows
except pyo3_runtime.PanicException as e:
    print("Произошла ошибка PanicException при чтении Excel-файла:", e)
except Exception as e:
    print("Произошла ошибка при чтении Excel-файла:", e)
```

При этом в блоке except можно указать дополнительные обработчики исключений для различных типов ошибок, чтобы точнее определить их причину и принять соответствующие действия.
Если сторонняя библиотека <b>крашит python процесс</b> то вам просто надо запускать <br/> еще один <b> процесс-камикадзе</b> (excel-kamikadze.py), который даже если падает - не оказывает влияние на основной. <br/> Эта техника используется часто в акторах Erlang/OTP. <br/> <br/> Как получить данные назад из excel-kamikadze.py. Тут - много вариантов. Можно создавать временный <br/> файл (XML/JSON куда передавать нужные результаты парсинга). Можно выдать их в поток STDOUT. <br/> <br/> <pre><code>import subprocess

result = subprocess.run(["/usr/bin/python3", "kamikadze.py"], stdout=subprocess.PIPE) 
output = result.stdout.decode("utf-8")</code></pre>
Похожие вопросы