腌制流完全是独立的,因此解腌将一次解腌一个对象。
因此,要释放多个流,应重复释放该文件,直到得到EOFError为止:
>>> f=open('a.p', 'wb')>>> pickle.dump({1:2}, f)>>> pickle.dump({3:4}, f)>>> f.close()>>> >>> f=open('a.p', 'rb')>>> pickle.load(f){1: 2}>>> pickle.load(f){3: 4}>>> pickle.load(f)Traceback (most recent call last): File "<stdin>", line 1, in <module>EOFError这样您的代码便会看起来像
import pickleobjs = []while 1: try: objs.append(pickle.load(f)) except EOFError: break



