import pickle # pickle 可用于python中的所有数据类型,但不可跨语言 dic1 = {'name': 'rock'} dic2 = {'name': 'chen'} dic3 = {'name': 'zi'} # dumps loads 用于网络传输 :将数据结构 ----> 转化成bytes s1 = pickle.dumps(dic1) print(s1) dic = pickle.loads(s1) print(dic, type(dic)) # pickle可以写入多信息到文件并读出 with open('p2.pickle', mode='wb') as f1: pickle.dump(dic1, f1) pickle.dump(dic2, f1) pickle.dump(dic3, f1) with open('p2.pickle', mode='rb') as f1: ret1 = pickle.load(f1) ret2 = pickle.load(f1) ret3 = pickle.load(f1) print(ret1, ret2, ret3)
用pickle存取对象
import pickle class Student: def __init__(self, name): self.name = name def pickle_dump(obj): f1 = open('test', 'ab') pickle.dump(obj, f1) f1.close() print('success') def pickle_load(fpath): f1 = open(fpath, 'rb') while True: try: stu_obj = pickle.load(f1) print(stu_obj.name) except EOFError: break f1.close() # s1 = Student('s1') # s2 = Student('s2') # pickle_dump(s1) # pickle_dump(s2) pickle_load('test') # s1 s2