This chapter describes a number of modules that are used in many Python programs. It's perfectly possible to write large Python programs without using them, but they can help you save a lot of time and effort.
2.1.1 Files and Streams
The fileinput module makes it easy to write different kinds of text filters. This module provides a wrapper class, which lets you use a simple for-in statement to loop over the contents of one or more text files.
The StringIO module (and the cStringIO variant) implements an in-memory file object. You can use StringIO objects in many places where Python expects an ordinary file object.
2.1.2 Type Wrappers
UserDict, UserList, and UserString are thin wrappers on top of the corresponding built-in types. Unlike the built-in types, these wrappers can be subclassed. This can come in handy if you need a class that works almost like a built-in type, but has one or more extra methods.
2.1.3 Random Numbers
The random module provides a number of different random number generators. The whrandom module is similar, but it also allows you to create multiple generator objects.
2.1.4 Digests and Encryption Algorithms
The md5 and sha modules are used to calculate cryptographically strong message signatures (so-called "message digests").
The crypt module implements a DES-style one-way encryption. This module is usually only available on Unix systems.
The rotor module provides simple two-way encryption.
More Standard Modules
Threads and Processes
Mail and News Message Processing
Tools and Utilities
Implementation Support Modules