自定义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)

  

posted @ 2019-06-05 00:30  CongShao's  阅读(330)  评论(0编辑  收藏  举报