在Python中使用pickle和for循环从文件读取
我有一个文件,里面存了很多列表。现在我想把这个文件里的数据加载到内存中,方便使用。我试着用“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()