【发布时间】:2018-08-21 23:52:18
【问题描述】:
import pickle
ListNames = [["Name1","City1","Email1"],["Name2","City2","Number2"]]
ListNumbers = [1,2,3,4,5,6,7,8]
with open ("TestPickle.pickle","wb") as fileSaver:
pickle.dump(ListNames,fileSaver)
pickle.dump(ListNumbers,fileSaver)
with open ("TestPickle.pickle","rb") as fileOpener:
print(pickle.load(fileOpener))
输出是:
[['Name1', 'City1', 'Email1'], ['Name2', 'City2', 'Number2']]
如何让 pickle 也加载 ListNumbers
我知道我可以再次打印pickle.load,但是如果我的pickle文件中有未知数量的项目,并且具有多种数据类型(例如:列表、元组、字典、字符串......)
谢谢
【问题讨论】:
-
通常,如果你想保存多个对象,你会腌制一个包含所有对象的列表(或其他容器)。如果这不切实际(例如,对象太大而无法同时放入内存中),您可以将对象的数量存储为文件中的第一件事,或者只是继续 unpickling 直到遇到 EOF 异常。
-
while True: try:....except EOFError: break?