<p>在Python2.6/2.7中,<a href="http://docs.python.org/library/io.html?highlight=io.stringio#module-io" rel="noreferrer">io</a>模块用于与Python3.X兼容</p>
<blockquote>
<p>New in version 2.6.</p>
<p>The io module provides the Python
interfaces to stream handling. Under
Python 2.x, this is proposed as an
alternative to the built-in file
object, but in Python 3.x it is the
default interface to access files and
streams.</p>
<p>Note Since this module has been
designed primarily for Python 3.x, you
have to be aware that all uses of
“bytes” in this document refer to the
str type (of which bytes is an alias),
and all uses of “text” refer to the
unicode type. Furthermore, those two
types are not interchangeable in the
io APIs.</p>
</blockquote>
<p>在3.X之前的Python版本中,<a href="http://docs.python.org/library/stringio.html?highlight=stringio#module-StringIO" rel="noreferrer">StringIO</a>模块包含StringIO的旧版本,与<code>io.StringIO</code>不同,StringIO可以在Python 2.6之前的版本中使用:</p>
<pre><code>>>> import StringIO
>>> s=StringIO.StringIO()
>>> s.write('hello')
>>> s.getvalue()
'hello'
>>> import io
>>> s=io.StringIO()
>>> s.write('hello')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: string argument expected, got 'str'
>>> s.write(u'hello')
5L
>>> s.getvalue()
u'hello'
</code></pre>