📅  最后修改于: 2020-04-16 14:10:31             🧑  作者: Mango
先决条件:pickle — Python对象序列化
Python pickle模块用于对Python对象结构进行序列化和反序列化。可以pickle Python中的任何对象,以便将其保存在磁盘上。pickle所做的是先将对象“序列化”,然后再将其写入文件。pickle是一种将Python对象(列表,字典等)转换为字符流的方法。关键思想是,此字符流包含在另一个Python脚本中重构对象所需的所有信息。
# 使用pickle模块有效地说明Python3程序
# 模块将内存中的Python对象转换为序列化的字节流,可以写入任何类似文件对象的字节。
import pickle
def storeData():
# 初始化要存储在数据库中的数据
Omkar = {'key' : 'Omkar', 'name' : 'Omkar Pathak',
'age' : 21, 'pay' : 40000}
Jagdish = {'key' : 'Jagdish', 'name' : 'Jagdish Pathak',
'age' : 50, 'pay' : 50000}
# 数据库
db = {}
db['Omkar'] = Omkar
db['Jagdish'] = Jagdish
# 使用二进制模式很重要
dbfile = open('examplePickle', 'ab')
# 来源,目的地
pickle.dump(db, dbfile)
dbfile.close()
def loadData():
# 对于读取二进制模式也很重要
dbfile = open('examplePickle', 'rb')
db = pickle.load(dbfile)
for keys in db:
print(keys, '=>', db[keys])
dbfile.close()
if __name__ == '__main__':
storeData()
loadData()
输出:
omkarpathak-Inspiron-3542:〜/ Documents / Python-Programs $ Python P60_PickleModule.py
Omkar => {'age':21,'name':'Omkar Pathak','key':'Omkar','pay':40000}
Jagdish => {'age':50,'name':'Jagdish Pathak','key':'Jagdish','pay':50000}
没有文件的pickle操作
# 初始化要存储在数据库中的数据
Omkar = {'key' : 'Omkar', 'name' : 'Omkar Pathak',
'age' : 21, 'pay' : 40000}
Jagdish = {'key' : 'Jagdish', 'name' : 'Jagdish Pathak',
'age' : 50, 'pay' : 50000}
# 数据库
db = {}
db['Omkar'] = Omkar
db['Jagdish'] = Jagdish
# 用于存储
b = pickle.dumps(db) # type(b)给出
# 用于加载
myEntry = pickle.loads(b)
print(myEntry)
使用pickle模块的优势: