python 提供了pickle模塊,能將對象進行序列化,將對象以文件形式存放在磁盤。
幾乎所有的數據類型(列表,字典,集合,類等)都可以用pickle來序列化。但是序列化后的數據可讀性很差。
pickle最主要的兩個函數:
pickle.dump(obj, file[, protocol]) # 序列化對象,並將結果數據流寫入到文件對象中。
# 參數protocol是序列化模式,默認值為0,表示以文本的形式序列化。protocol的值還可以是1或2,表示以二進制的形式序列化。
pickle.load(file) # 反序列化對象。將文件中的數據解析為一個Python對象。
# 每取一次對象,就要load一次
dump() 和 pickle() 成對存在
其中要注意的是,在load(file)的時候,要讓python能夠找到類的定義,否則會報錯
例子如下:
1 import pickle 2 3 info_1 = {'admin': 'admin'} 4 info_2 = {'user': 'user'} 5 6 with open('test.txt', 'wb') as urs_file: 7 pickle.dump(info_1, urs_file) 8 pickle.dump(info_2, urs_file) 9 10 with open('test.txt', 'rb') as urs_file: 11 while True: 12 try: 13 admin = pickle.load(urs_file) 14 print(admin) 15 except EOFError: 16 break
運行結果:
{'admin': 'admin'} {'user': 'user'}