| \section{\module{StringIO} --- |
| Read and write strings as files} |
| |
| \declaremodule{standard}{StringIO} |
| \modulesynopsis{Read and write strings as if they were files.} |
| |
| |
| 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 of file objects for operations (section |
| \ref{bltin-file-objects}). |
| |
| \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. |
| |
| The \class{StringIO} object can accept either Unicode or 8-bit |
| strings, but mixing the two may take some care. If both are used, |
| 8-bit strings that cannot be interpreted as 7-bit \ASCII{} (that |
| use the 8th bit) will cause a \exception{UnicodeError} to be raised |
| when \method{getvalue()} is called. |
| \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. See the |
| note above for information about mixing Unicode and 8-bit strings; |
| such mixing can cause this method to raise \exception{UnicodeError}. |
| \end{methoddesc} |
| |
| \begin{methoddesc}{close}{} |
| Free the memory buffer. |
| \end{methoddesc} |
| |
| |
| \section{\module{cStringIO} --- |
| Faster version of \module{StringIO}} |
| |
| \declaremodule{builtin}{cStringIO} |
| \modulesynopsis{Faster version of \module{StringIO}, but not |
| subclassable.} |
| \moduleauthor{Jim Fulton}{jfulton@digicool.com} |
| \sectionauthor{Fred L. Drake, Jr.}{fdrake@acm.org} |
| |
| The module \module{cStringIO} provides an interface similar to that of |
| the \refmodule{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 \refmodule{StringIO} module in that case. |
| |
| Unlike the memory files implemented by the \refmodule{StringIO} |
| module, those provided by this module are not able to accept Unicode |
| strings that cannot be encoded as plain \ASCII{} strings. |
| |
| Another difference from the \refmodule{StringIO} module is that calling |
| \function{StringIO()} with a string parameter creates a read-only object. |
| Unlike an object created without a string parameter, it does not have |
| write methods. These objects are not generally visible. They turn up in |
| tracebacks as \class{StringI} and \class{StringO}. |
| |
| The following data objects are provided as well: |
| |
| |
| \begin{datadesc}{InputType} |
| The type object of the objects created by calling |
| \function{StringIO} with a string parameter. |
| \end{datadesc} |
| |
| \begin{datadesc}{OutputType} |
| The type object of the objects returned by calling |
| \function{StringIO} with no parameters. |
| \end{datadesc} |
| |
| |
| There is a C API to the module as well; refer to the module source for |
| more information. |