Using simple, plain-text files can get you only so far. Yes, they can get you very far, but at some point, you may need some extra functionality. You may want some automated serialization, and you can turn to
shelve (see Chapter 10) and
pickle (a close relative of
shelve). But you may want features that go beyond even this. For example, you might want to have automated support for concurrent access to your data; that is, to allow several users to read from and write to your disk-based data without causing any corrupted files or the like. Or you may want to be able to perform complex searches using many data fields or properties at the same time, ...