The StringIO and cStringIO Modules
You can implement file-like objects by writing Python classes that supply the methods you need. If all you want is for data to reside in memory, rather than on a file as seen by the operating system, use modules StringIO
or cStringIO
. The two modules are almost identical: each supplies a factory that is callable to create in-memory file-like objects. The difference between them is that objects created by module StringIO
are instances of class StringIO.StringIO
. You may inherit from this class to create your own customized file-like objects, overriding the methods that you need to specialize, and you can perform both input and output on objects of this class. Objects created by module cStringIO
, on the other hand, are instances of either of two special-purpose types (one just for input, the other just for output), not of a class. Performance is better when you can use cStringIO
, but inheritance is not supported, and neither is doing both input and output on the same object. Furthermore, cStringIO
does not support Unicode.
Each module supplies a factory function StringIO
that returns a file-like object fl
.
StringIO |
Creates and returns an in-memory file-like object |
Get Python in a Nutshell, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.