在Python中使用pickle和for循环从文件读取

12 投票
1 回答
9953 浏览
提问于 2025-04-16 05:04

我有一个文件,里面存了很多列表。现在我想把这个文件里的数据加载到内存中,方便使用。我试着用“pickle”的“load”方法来加载这个文件,但不知道为什么,它只给我返回了文件里的第一个项目。实际上,我发现它只把我的第一个列表加载到了内存中。如果我想把整个文件(也就是多个列表)都加载进来,就得一个一个地遍历文件,在每次遍历时都用“pickle.load(filename)”来加载。

问题是,我不知道该怎么用循环(比如for循环或while循环)来实现,因为我不知道什么时候才算是到达文件的末尾。如果能给我一个例子就太好了。

谢谢!

1 个回答

10

这样怎么样:

lists = []
infile = open('yourfilename.pickle', 'r')
while 1:
    try:
        lists.append(pickle.load(infile))
    except (EOFError, UnpicklingError):
        break
infile.close()

撰写回答