pickle模块是Python专用的持久化模块,可以持久化包括自定义类在内的各种数据,比较适合Python本身复杂数据的存储。
目录
引入持久性模块
示例如下:
import pickle
列表数据持久化
存储
设置一个列表数据,存储格式为二进制。
示例如下:
# 列表
list1 = [1, 2, 3, "振长策而御宇内"]
# 元组
# list1 = (1, 2, 3, "振长策而御宇内")
# 集合
# list1 = set([1, 2, 3, "振长策而御宇内"])
path = './file1.txt'
f = open(path, 'wb')
pickle.dump(list1, f)
# 最后关闭文件
f.close()
因为采用的路径是相对路径,会在执行的文件同级下创建file1.txt文件。
内容如下:
读取
读取的时候还是要以二进制方式打开。
示例如下:
path = './file1.txt'
f1 = open(path, 'rb')
tmpList = pickle.load(f1)
f1.close()
print(tmpList)
执行结果:
[1, 2, 3, '振长策而御宇内']
字典数据持久化
存储
设置一个叫张三的资料信息为字典格式,存储到file2.txt中。
示例如下:
dict1 = {'name': 'zhangsan', 'gender': 'man', 'age': 18, 'hobby': '篮球,乒乓球'}
path = './file2.txt'
f = open(path, 'wb')
pickle.dump(dict1, f)
# 最后关闭文件
f.close()
操作与列表持久化一致,创建的文件内容如下:
读取
读取路径改为file2.txt文件,最终读取出的内容还是会恢复存储时的格式。
示例如下:
path = './file2.txt'
f1 = open(path, 'rb')
tmpList2 = pickle.load(f1)
f1.close()
print(tmpList2)
print(type(tmpList2))
执行结果:
{'name': 'zhangsan', 'gender': 'man', 'age': 18, 'hobby': '篮球,乒乓球'}
<class 'dict'>
总结
本文主要介绍了Python中pickle模块,以及使用模块的方法进行了列表和字典类型的存储和读取。元组、集合的操作也是如此,不在做示例。