- Python 数据持久化教程
- Python 数据持久化 - 首页
- Python 数据持久化 - 简介
- Python 数据持久化 - 文件 API
- 使用 os 模块进行文件处理
- Python 数据持久化 - 对象序列化
- Python 数据持久化 - pickle 模块
- Python 数据持久化 - marshal 模块
- Python 数据持久化 - shelve 模块
- Python 数据持久化 - dbm 包
- Python 数据持久化 - csv 模块
- Python 数据持久化 - json 模块
- Python 数据持久化 - XML 解析器
- Python 数据持久化 - plistlib 模块
- Python 数据持久化 - sqlite3 模块
- Python 数据持久化 - SQLAlchemy
- Python 数据持久化 - PyMongo 模块
- Python 数据持久化 - Cassandra 驱动程序
- 数据持久化 - ZODB
- 数据持久化 - Openpyxl 模块
- Python 数据持久化资源
- Python 数据持久化 - 快速指南
- Python 数据持久化 - 有用资源
- Python 数据持久化 - 讨论
Python 数据持久化 - 对象序列化
Python 内置的 `open()` 函数返回的内置文件对象有一个重要的缺点。当以 'w' 模式打开时,`write()` 方法只接受字符串对象。
这意味着,如果你的数据以任何非字符串形式表示,无论是内置类(数字、字典、列表或元组)的对象,还是其他用户定义类的对象,都不能直接写入文件。在写入之前,你需要将其转换为字符串表示。
numbers=[10,20,30,40] file=open('numbers.txt','w') file.write(str(numbers)) file.close()
对于二进制文件,`write()` 方法的参数必须是字节对象。例如,整数列表通过 `bytearray()` 函数转换为字节,然后写入文件。
numbers=[10,20,30,40] data=bytearray(numbers) file.write(data) file.close()
要以相应的数据类型从文件读取回数据,需要进行反向转换。
file=open('numbers.txt','rb') data=file.read() print (list(data))
这种将对象手动转换为字符串或字节格式(反之亦然)的类型非常繁琐和冗长。可以将 Python 对象的状态以字节流的形式直接存储到文件或内存流中,并检索到其原始状态。这个过程称为序列化和反序列化。
Python 的内置库包含各种用于序列化和反序列化过程的模块。
序号 | 名称及描述 |
---|---|
1 |
pickle Python 特定的序列化库 |
2 |
marshal 内部用于序列化的库 |
3 |
shelve Pythonic 对象持久化 |
4 |
dbm 提供 Unix 数据库接口的库 |
5 |
csv 用于将 Python 数据存储和检索到 CSV 格式的库 |
6 |
json 用于序列化到通用 JSON 格式的库 |
广告