Как поймать ошибку распаковки (Python3.6)

#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) , и для чтения остается «какой-то файл»