#python-3.x #pickle
Вопрос:
У меня есть несколько засоленных файлов, которые я хочу распаковать. Я знаю, что некоторые из них не были закончены должным образом, но я хотел бы получить от них достоверную информацию (каждый набор данных был обработан).
Когда я распаковываю файл из определенного файла, я получаю следующую ошибку:
var1 = pickle.load(output_file)
_pickle.UnpicklingError: unpickling stack underflow
Но когда я пытаюсь поймать ошибку, как
try:
var2 = pickle.load(output_file)
except:
stop_reading = True
программа не входит в раздел «кроме». Интересно, что это вызывает ошибку для var1, не заданную до var2, но когда я отлаживаю код, он останавливается при снятии var2.
Что я могу сделать, чтобы поймать ошибку ?
Комментарии:
1. попробуйте с определенной ошибкой
pickle.UnpicklingError
2. попробовал с помощью try v1 = рассол. загрузите(файл вывода), кроме pickle. Ошибка отмены: stop_reading = True, но тоже не сработало
3. попробуйте разместить отпечатки в нескольких местах, чтобы увидеть, действительно ли это соответствует ожиданиям и/или соответствует ожиданиям, как
try print("before"); v1 = pickle.load(output_file); print("after") except pickle.UnpicklingError: stop_reading = True; print("error")
будто ошибка может быть где-то в другом месте4. это происходит непосредственно при вызове
pickle.load(output_file)
, и для чтения остается «какой-то файл»