有没有一种简单的方法来获取腌制文件中的对象数量 - 比编写打开文件的函数更短,保持调用pickle.load
方法并更新num_of_objs
1 直到它捕获EOFError
并返回值?
问问题
5318 次
2 回答
7
不,没有。pickle 格式不存储该信息。
如果你需要那种类型的元数据,你需要在写的时候自己把它添加到文件中:
pickle.dump(len(objects), fileobj)
for ob in objects:
pickle.dump(ob, fileobj)
现在第一条记录告诉你还有多少要遵循。
于 2013-05-06T16:36:57.343 回答
2
没有直接的方法可以找到泡菜的长度,但是如果您害怕运行无限循环,您可以尝试以下方法,
company_id_processed=[]
with open("responses_pickle.pickle", "rb") as f:
while True:
try:
current_id=pickle.load(f)['name']
company_id_processed.append(current_id)
except EOFError:
print 'Pickle ends'
break
于 2018-09-14T10:06:19.870 回答