第7章 文件和数据持久化
“持久性是我们称为生活的这种经历的关键所在。”
——托斯滕·亚历山大·朗格
在前面几章中,我们探索了Python的几个不同的主题。由于这些章节的例子主要用于展示,因此它们是在一个简单的Python shell中运行的,或者是以Python模块的形式运行的。它们在运行时可能会在控制台输出一些东西,然后就结束了,不再留下其他痕迹。
但是,现实世界的应用程序一般都不是这样。当然,它们仍然是在内存中运行的,但它们会与网络、磁盘和数据库进行交互。它们还会按照适当的格式,与其他应用程序和设备交换信息。
在本章中,我们将进一步靠近现实世界,探索下面这些主题。
- 文件和目录。
- 压缩。
- 网络和流。
- JSON数据交换格式。
- 使用标准库的pickle模块和shelve模块实现数据持久化。
- 使用SQLAlchemy实现数据持久化。
和往常一样,我尽量保持宽度和深度之间的平衡。因此在本章结束时,我们能够比较熟练地掌握相关的基础知识,并知道怎样在网络上寻找更多的信息。
7.1 操作文件和目录
关于文件和目录,Python提供了丰富的实用工具。具体地说,在后面的例子中,我们将使用os和shutil模块。因为我们将读取文件并写入磁盘中,所以我将使用一个文件fear.txt。它包含了Thich Nhat Hanh的著作《Fear》的一段摘录,本章中的一些例子将使用到它。
7.1.1 打开文件
在Python中,打开一个文件是非常简单和直观的。事实上,我们只需要使用open函数。我们观察一个简单的例子:
# files/open_try.py fh = open('fear.txt', 'rt') # r: read,t: text for line in fh.readlines(): ...
Get Python编程入门与实战 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.