Python - сделать что-нибудь и продолжить, когда процесс завершится с кодом выхода 1 - PullRequest
0 голосов
/ 27 мая 2020

Я создал программу чтения содержимого текстовых файлов - я создал несколько функций, но не могу обрабатывать все случаи - если какой-то случай не определен, программа возвращает сообщение "Process finished with exit code 1" - Можно ли обойти это? Если есть проблема - сообщение the Process finished with exit code 1 - тогда я хотел бы сохранить имя файла и продолжить чтение остальных файлов - на данный момент он работает, так что в случае ошибки программа просто перестает работать - но Я хочу, чтобы он сохранил имя файла с ошибкой и продолжил работу. Как добавить такое условие в существующие функции? Пожалуйста, дайте мне совет

Пример такой ошибки:

import pandas as pd
list=['a',2,3,4]
df = pd.DataFrame(list)

df[0] = df[0].astype(int)
print (df)

Невозможно преобразовать символ в int, поэтому возникает ошибка. Это только пример возможной ошибки, но следует сохранить имя файла, в котором возникла ошибка, и продолжить l oop.

1 Ответ

0 голосов
/ 27 мая 2020

Поскольку вы не включили никакого кода, я предполагаю, что ошибка была создана блоком кода. В этом случае вы можете заключить его в блок try и добавить блок «except», чтобы сохранить имя файла в файле. например,

try :
    # to read your files
except: # an exception occurred
    # save the file name in a log
    continue

попробуйте поделиться своим кодом для лучшей помощи.

EDIT 1 : добавлено объяснение использования простого except.

Как указано в , SystemExit не наследуется от Exception. Вам нужно будет использовать кроме BaseException.

Однако на это есть причина:

Это исключение наследуется от BaseException вместо StandardError или Exception, чтобы его случайно не перехватил код который перехватывает исключение.

Необычно обрабатывать «настоящие» исключения так же, как вы хотите обрабатывать SystemExit. Возможно, вам лучше явно перехватить SystemExit с помощью except SystemExit.

...