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