自定义Pickle,借助pickle模块来完成简化的dump和load
import pickle # 导入pickle模块 class My_pickle: # 定义pickle类 def __init__(self, path): self.file = path def dump(self, obj): with open(self.file, 'ab') as f: # 以ab模式写入 pickle.dump(obj, f) def load(self): l = [] with open(self.file,'rb') as f: # rb模式读出 while True: try: l.append(pickle.load(f)) except EOFError: break return l pic = My_pickle('pickle_file') pic.dump(obj) for i in pic.load(): print(i)
方式二 import pickle class My_pickle: def __init__(self,path): self.file = path def dump(self,obj): with open(self.file,'ab') as f: pickle.dump(obj,f) def load(self): with open(self.file,'rb') as f: while 1: try: yield pickle load(f) except EOFError: break pic = My_pickle('pickle_file') pic.dump(obj) for i in pic.load(): print(i)