Python文件操作与核心类型总结
1. Python文件模式与对象序列化
在Python中,存储序列化对象的文件通常需要以二进制模式打开。在Python 3.X中,二进制模式是必需的,因为pickler创建和使用字节字符串对象,而这些对象意味着二进制模式文件(在3.X中,文本模式文件意味着字符串对象)。在早期的Python版本中,对于协议0(默认协议,创建ASCII文本),使用文本模式文件是可以的,只要始终使用文本模式;更高的协议则需要二进制模式文件。Python 3.X的默认协议是3(二进制),即使对于协议0也会创建字节。
Python 2.X有一个 cPickle
模块,它是 pickle
的优化版本,可以直接导入以提高速度。Python 3.X将这个模块重命名为 _pickle
,并在 pickle
中自动使用它,脚本只需导入 pickle
,让Python自行优化。
2. 以JSON格式存储Python对象
pickle
模块可以将几乎任意的Python对象转换为专门为Python开发的专有格式,并经过多年优化以提高性能。而JSON是一种较新的、正在兴起的数据交换格式,它与编程语言无关,并且得到了各种系统的支持。例如,MongoDB使用二进制JSON格式将数据存储在JSON文档数据库中。
JSON不支持像 pickle
那样广泛的Python对象类型,但它的可移植性在某些情况下是一个优势,并且它提供了另一种序列化特定类别