| 
									
										
										
										
											1998-08-10 19:42:37 +00:00
										 |  |  | \section{\module{StringIO} --- | 
					
						
							| 
									
										
										
										
											1999-04-21 18:15:22 +00:00
										 |  |  |          Read and write strings as files} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:59:49 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-04-21 18:15:22 +00:00
										 |  |  | \declaremodule{standard}{StringIO} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:59:49 +00:00
										 |  |  | \modulesynopsis{Read and write strings as if they were files.} | 
					
						
							| 
									
										
										
										
											1997-03-03 16:01:21 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-03-27 05:27:08 +00:00
										 |  |  | This module implements a file-like class, \class{StringIO}, | 
					
						
							| 
									
										
										
										
											1998-01-14 14:51:31 +00:00
										 |  |  | that reads and writes a string buffer (also known as \emph{memory | 
					
						
							| 
									
										
										
										
											2000-11-28 16:24:28 +00:00
										 |  |  | files}).  See the description of file objects for operations (section | 
					
						
							| 
									
										
										
										
											1999-04-21 18:15:22 +00:00
										 |  |  | \ref{bltin-file-objects}). | 
					
						
							| 
									
										
										
										
											1997-03-03 16:01:21 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-03-27 05:27:08 +00:00
										 |  |  | \begin{classdesc}{StringIO}{\optional{buffer}} | 
					
						
							|  |  |  | When a \class{StringIO} object is created, it can be initialized | 
					
						
							| 
									
										
										
										
											1997-03-03 16:01:21 +00:00
										 |  |  | to an existing string by passing the string to the constructor. | 
					
						
							| 
									
										
										
										
											1998-03-27 05:27:08 +00:00
										 |  |  | If no string is given, the \class{StringIO} will start empty. | 
					
						
							| 
									
										
										
										
											2000-11-28 16:24:28 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | The \class{StringIO} object can accept either Unicode or 8-bit | 
					
						
							|  |  |  | strings, but mixing the two may take some care.  If both are used, | 
					
						
							| 
									
										
										
										
											2001-07-06 20:30:11 +00:00
										 |  |  | 8-bit strings that cannot be interpreted as 7-bit \ASCII{} (that | 
					
						
							| 
									
										
										
										
											2000-11-28 16:24:28 +00:00
										 |  |  | use the 8th bit) will cause a \exception{UnicodeError} to be raised | 
					
						
							|  |  |  | when \method{getvalue()} is called. | 
					
						
							| 
									
										
										
										
											1998-03-27 05:27:08 +00:00
										 |  |  | \end{classdesc} | 
					
						
							| 
									
										
										
										
											1997-03-03 16:01:21 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-04-11 18:05:24 +00:00
										 |  |  | The following methods of \class{StringIO} objects require special | 
					
						
							|  |  |  | mention: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-03-27 05:27:08 +00:00
										 |  |  | \begin{methoddesc}{getvalue}{} | 
					
						
							|  |  |  | Retrieve the entire contents of the ``file'' at any time before the | 
					
						
							| 
									
										
										
										
											2000-11-28 16:24:28 +00:00
										 |  |  | \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}. | 
					
						
							| 
									
										
										
										
											1998-03-27 05:27:08 +00:00
										 |  |  | \end{methoddesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{methoddesc}{close}{} | 
					
						
							|  |  |  | Free the memory buffer. | 
					
						
							|  |  |  | \end{methoddesc} | 
					
						
							| 
									
										
										
										
											1998-04-11 20:05:43 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-08-10 19:42:37 +00:00
										 |  |  | \section{\module{cStringIO} --- | 
					
						
							| 
									
										
										
										
											1999-04-21 18:15:22 +00:00
										 |  |  |          Faster version of \module{StringIO}} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:59:49 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-02-18 21:13:03 +00:00
										 |  |  | \declaremodule{builtin}{cStringIO} | 
					
						
							| 
									
										
										
										
											1999-04-21 18:15:22 +00:00
										 |  |  | \modulesynopsis{Faster version of \module{StringIO}, but not | 
					
						
							|  |  |  |                 subclassable.} | 
					
						
							|  |  |  | \moduleauthor{Jim Fulton}{jfulton@digicool.com} | 
					
						
							| 
									
										
										
										
											1999-02-18 21:13:03 +00:00
										 |  |  | \sectionauthor{Fred L. Drake, Jr.}{fdrake@acm.org} | 
					
						
							| 
									
										
										
										
											1998-04-11 20:05:43 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | The module \module{cStringIO} provides an interface similar to that of | 
					
						
							| 
									
										
										
										
											1999-04-21 18:15:22 +00:00
										 |  |  | the \refmodule{StringIO} module.  Heavy use of \class{StringIO.StringIO} | 
					
						
							| 
									
										
										
										
											1998-04-11 20:05:43 +00:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											1999-04-21 18:15:22 +00:00
										 |  |  | subclassing.  Use the original \refmodule{StringIO} module in that case. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-11-28 16:24:28 +00:00
										 |  |  | 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. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-04-21 18:15:22 +00:00
										 |  |  | 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. |