\section{Standard Module \module{StringIO}} \label{module-StringIO} \stmodindex{StringIO} This module implements a file-like class, \class{StringIO}, that reads and writes a string buffer (also known as \emph{memory files}). See the description on file objects for operations. \begin{classdesc}{StringIO}{\optional{buffer}} When a \class{StringIO} object is created, it can be initialized to an existing string by passing the string to the constructor. If no string is given, the \class{StringIO} will start empty. \end{classdesc} The following methods of \class{StringIO} objects require special mention: \begin{methoddesc}{getvalue}{} Retrieve the entire contents of the ``file'' at any time before the \class{StringIO} object's \method{close()} method is called. \end{methoddesc} \begin{methoddesc}{close}{} Free the memory buffer. \end{methoddesc} \section{Built-in Module \module{cStringIO}} \bimodindex{cStringIO} \label{module-cStringIO} % This section was written by Fred L. Drake, Jr. The module \module{cStringIO} provides an interface similar to that of the \module{StringIO} module. Heavy use of \class{StringIO.StringIO} objects can be made more efficient by using the function \function{StringIO()} from this module instead. Since this module provides a factory function which returns objects of built-in types, there's no way to build your own version using subclassing. Use the original \module{StringIO} module in that case.