StringIO in 2.6 and beyond

Bill McClain 20080915.20.wmcclain at
Mon Dec 8 19:46:16 CET 2008

I've just installed 2.6, had been using 2.4.

This was working for me:

    #! /usr/bin/env python
    import StringIO
    out = StringIO.StringIO()
    print >> out, 'hello'

I used 2to3, and added import from future to get:

    #! /usr/bin/env python
    from __future__ import print_function
    import io
    out = io.StringIO()
    print('hello', file=out)

...which gives an error:

Traceback (most recent call last):
  File "./", line 5, in <module>
    print('hello', file=out)
  File "/usr/local/lib/python2.6/", line 1487, in write
TypeError: can't write str to text stream

...which has me stumped. Why can't it?

Sattre Press                              History of Astronomy               During the 19th Century
info at                       by Agnes M. Clerke

More information about the Python-list mailing list