Чтение из файла с использованием pickle и цикла for в python

У меня есть файл, в который я поместил огромное количество списков. Теперь я хочу загрузить этот файл в память и использовать данные внутри него. Я попытался загрузить свой файл, используя метод «load» «pickle», однако по какой-то причине он просто дает мне первый элемент в файле. на самом деле я заметил, что он загружает только мой первый список в память, и если я хочу загрузить весь свой файл (несколько списков), то я должен перебрать свой файл и использовать «pickle.load (имя файла)» в каждом из итерации я беру. Проблема в том, что я не знаю, как на самом деле реализовать это с помощью цикла (для или во время), потому что я не знаю, когда я достигну конца моего файла. пример мне очень поможет. Спасибо

Ответы на вопрос(1)

Решение Вопроса

Как насчет этого:

lists = []
infile = open('yourfilename.pickle', 'r')
while 1:
    try:
        lists.append(pickle.load(infile))
    except (EOFError, UnpicklingError):
        break
infile.close()
 eumiro06 окт. 2010 г., 13:04
@katrielalex - ты прав, я это исправил. @Hossein - я проверил возможные ошибки, поэтому, если возникнет какая-либо другая ошибка, кроме EOFError и UnpicklingError, добавьте ее в список.
 Katriel06 окт. 2010 г., 12:51
Вам следуетникогда использованиеexcept:; всегда указывайте исключение, которое вы пытаетесь перехватить (например,except PicklingError:). Кроме того, идиома Python для бесконечных цикловwhile 1хоть и придирчиво =).
 Wilfred Hughes10 сент. 2013 г., 17:46
Современный Python должен использоватьwhile True для бесконечных петель.while 1 был использован в коде Python, предшествующем PEP 285, который добавилTrue на язык.

Ваш ответ на вопрос