CHAPTER 17
Databases and Persistence
“Give Me an Order of Persistence, but Hold the Pickles”
So far in this book, we’ve used Python in the system programming, GUI development,
and Internet scripting domains—three of Python’s most common applications, and
representative of its use as an application programming language at large. In the next
four chapters, we’re going to take a quick look at other major Python programming
topics: persistent data, data structure techniques, text and language processing, and
Python/C integration.
These four topics are not really application areas themselves, but they are techniques
that span domains. The database topics in this chapter, for instance, can be applied on
the Web, in desktop GUI applications, and so on. Text processing is a similarly general
tool. Moreover, none of these final four topics is covered exhaustively (each could easily
fill a book alone), but we’ll sample Python in action in these domains and highlight
their core concepts and tools. If any of these chapters spark your interest, additional
resources are readily available in the Python world.
Persistence Options in Python
In this chapter, our focus is on persistent data—the kind that outlives a program that
creates it. That’s not true by default for objects a script constructs, of course; things
like lists, dictionaries, and even class instance objects live in your computer’s memory
and are lost as soon as the script ends. To make data live longer, we need to do some-
thing special. In Python programming, there are today at least six traditional ways to
save information in between program executions:
Flat files
Text and bytes stored directly on your computer
DBM keyed files
Keyed access to strings stored in dictionary-like files
1303