mirror of
https://github.com/python/cpython.git
synced 2025-08-15 06:10:47 +00:00

svn+ssh://pythondev@svn.python.org/python/trunk ........ r68133 | antoine.pitrou | 2009-01-01 16:38:03 +0100 (Thu, 01 Jan 2009) | 1 line fill in actual issue number in tests ........ r68134 | hirokazu.yamamoto | 2009-01-01 16:45:39 +0100 (Thu, 01 Jan 2009) | 2 lines Issue #4797: IOError.filename was not set when _fileio.FileIO failed to open file with `str' filename on Windows. ........ r68141 | benjamin.peterson | 2009-01-01 17:43:12 +0100 (Thu, 01 Jan 2009) | 1 line fix highlighting ........ r68142 | benjamin.peterson | 2009-01-01 18:29:49 +0100 (Thu, 01 Jan 2009) | 2 lines welcome to 2009, Python! ........ r68145 | amaury.forgeotdarc | 2009-01-02 01:03:54 +0100 (Fri, 02 Jan 2009) | 5 lines #4801 _collections module fails to build on cygwin. _PyObject_GC_TRACK is the macro version of PyObject_GC_Track, and according to documentation it should not be used for extension modules. ........ r68146 | ronald.oussoren | 2009-01-02 11:44:46 +0100 (Fri, 02 Jan 2009) | 2 lines Fix for issue4472: "configure --enable-shared doesn't work on OSX" ........ r68148 | ronald.oussoren | 2009-01-02 11:48:31 +0100 (Fri, 02 Jan 2009) | 2 lines Forgot to add a NEWS item in my previous checkin ........ r68149 | ronald.oussoren | 2009-01-02 11:50:48 +0100 (Fri, 02 Jan 2009) | 2 lines Fix for issue4780 ........ r68159 | ronald.oussoren | 2009-01-02 15:48:17 +0100 (Fri, 02 Jan 2009) | 2 lines Fix for issue 1627952 ........ r68160 | ronald.oussoren | 2009-01-02 15:52:09 +0100 (Fri, 02 Jan 2009) | 2 lines Fix for issue r1737832 ........ r68161 | ronald.oussoren | 2009-01-02 16:00:05 +0100 (Fri, 02 Jan 2009) | 3 lines Fix for issue 1149804 ........ r68162 | ronald.oussoren | 2009-01-02 16:06:00 +0100 (Fri, 02 Jan 2009) | 3 lines Fix for issue 4472 is incompatible with Cygwin, this patch should fix that. ........ r68166 | benjamin.peterson | 2009-01-02 19:26:23 +0100 (Fri, 02 Jan 2009) | 1 line document PyMemberDef ........ r68171 | georg.brandl | 2009-01-02 21:25:14 +0100 (Fri, 02 Jan 2009) | 3 lines #4811: fix markup glitches (mostly remains of the conversion), found by Gabriel Genellina. ........ r68172 | martin.v.loewis | 2009-01-02 21:32:55 +0100 (Fri, 02 Jan 2009) | 2 lines Issue #4075: Use OutputDebugStringW in Py_FatalError. ........ r68173 | martin.v.loewis | 2009-01-02 21:40:14 +0100 (Fri, 02 Jan 2009) | 2 lines Issue #4051: Prevent conflict of UNICODE macros in cPickle. ........ r68174 | benjamin.peterson | 2009-01-02 21:47:27 +0100 (Fri, 02 Jan 2009) | 1 line fix compilation on non-Windows platforms ........ r68179 | raymond.hettinger | 2009-01-02 22:26:45 +0100 (Fri, 02 Jan 2009) | 1 line Issue #4615. Document how to use itertools for de-duping. ........ r68195 | georg.brandl | 2009-01-03 14:45:15 +0100 (Sat, 03 Jan 2009) | 2 lines Remove useless string literal. ........ r68196 | georg.brandl | 2009-01-03 15:29:53 +0100 (Sat, 03 Jan 2009) | 2 lines Fix indentation. ........ r68210 | georg.brandl | 2009-01-03 20:10:12 +0100 (Sat, 03 Jan 2009) | 2 lines Set eol-style correctly for mp_distributing.py. ........ r68214 | georg.brandl | 2009-01-03 20:44:48 +0100 (Sat, 03 Jan 2009) | 2 lines Make indentation consistent. ........ r68215 | georg.brandl | 2009-01-03 21:15:14 +0100 (Sat, 03 Jan 2009) | 2 lines Fix role name. ........ r68217 | georg.brandl | 2009-01-03 21:30:15 +0100 (Sat, 03 Jan 2009) | 2 lines Add rstlint, a little tool to find subtle markup problems and inconsistencies in the Doc sources. ........ r68218 | georg.brandl | 2009-01-03 21:38:59 +0100 (Sat, 03 Jan 2009) | 2 lines Recognize usage of the default role. ........ r68219 | georg.brandl | 2009-01-03 21:47:01 +0100 (Sat, 03 Jan 2009) | 2 lines Fix uses of the default role. ........ r68220 | georg.brandl | 2009-01-03 21:55:06 +0100 (Sat, 03 Jan 2009) | 2 lines Remove trailing whitespace. ........ r68221 | georg.brandl | 2009-01-03 22:04:55 +0100 (Sat, 03 Jan 2009) | 2 lines Remove tabs from the documentation. ........ r68222 | georg.brandl | 2009-01-03 22:11:58 +0100 (Sat, 03 Jan 2009) | 2 lines Disable the line length checker by default. ........
124 lines
4.1 KiB
ReStructuredText
124 lines
4.1 KiB
ReStructuredText
|
|
:mod:`StringIO` --- Read and write strings as files
|
|
===================================================
|
|
|
|
.. module:: StringIO
|
|
:synopsis: 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 *memory files*). See the description of
|
|
file objects for operations (section :ref:`bltin-file-objects`). (For
|
|
standard strings, see :class:`str` and :class:`unicode`.)
|
|
|
|
|
|
.. class:: StringIO([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. In both cases, the initial file position
|
|
starts at zero.
|
|
|
|
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
|
|
:exc:`UnicodeError` to be raised when :meth:`getvalue` is called.
|
|
|
|
The following methods of :class:`StringIO` objects require special mention:
|
|
|
|
|
|
.. method:: StringIO.getvalue()
|
|
|
|
Retrieve the entire contents of the "file" at any time before the
|
|
:class:`StringIO` object's :meth:`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 :exc:`UnicodeError`.
|
|
|
|
|
|
.. method:: StringIO.close()
|
|
|
|
Free the memory buffer. Attempting to do further operations with a closed
|
|
:class:`StringIO` object will raise a :exc:`ValueError`.
|
|
|
|
Example usage::
|
|
|
|
import StringIO
|
|
|
|
output = StringIO.StringIO()
|
|
output.write('First line.\n')
|
|
print >>output, 'Second line.'
|
|
|
|
# Retrieve file contents -- this will be
|
|
# 'First line.\nSecond line.\n'
|
|
contents = output.getvalue()
|
|
|
|
# Close object and discard memory buffer --
|
|
# .getvalue() will now raise an exception.
|
|
output.close()
|
|
|
|
|
|
:mod:`cStringIO` --- Faster version of :mod:`StringIO`
|
|
======================================================
|
|
|
|
.. module:: cStringIO
|
|
:synopsis: Faster version of StringIO, but not subclassable.
|
|
.. moduleauthor:: Jim Fulton <jim@zope.com>
|
|
.. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
|
|
|
|
|
|
The module :mod:`cStringIO` provides an interface similar to that of the
|
|
:mod:`StringIO` module. Heavy use of :class:`StringIO.StringIO` objects can be
|
|
made more efficient by using the function :func:`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 :mod:`StringIO` module in that case.
|
|
|
|
Unlike the memory files implemented by the :mod:`StringIO` module, those
|
|
provided by this module are not able to accept Unicode strings that cannot be
|
|
encoded as plain ASCII strings.
|
|
|
|
Calling :func:`StringIO` with a Unicode string parameter populates
|
|
the object with the buffer representation of the Unicode string, instead of
|
|
encoding the string.
|
|
|
|
Another difference from the :mod:`StringIO` module is that calling
|
|
:func:`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:
|
|
|
|
|
|
.. data:: InputType
|
|
|
|
The type object of the objects created by calling :func:`StringIO` with a string
|
|
parameter.
|
|
|
|
|
|
.. data:: OutputType
|
|
|
|
The type object of the objects returned by calling :func:`StringIO` with no
|
|
parameters.
|
|
|
|
There is a C API to the module as well; refer to the module source for more
|
|
information.
|
|
|
|
Example usage::
|
|
|
|
import cStringIO
|
|
|
|
output = cStringIO.StringIO()
|
|
output.write('First line.\n')
|
|
print >>output, 'Second line.'
|
|
|
|
# Retrieve file contents -- this will be
|
|
# 'First line.\nSecond line.\n'
|
|
contents = output.getvalue()
|
|
|
|
# Close object and discard memory buffer --
|
|
# .getvalue() will now raise an exception.
|
|
output.close()
|
|
|