StringIO in 2.6 and beyond

Bill McClain 20080915.20.wmcclain at spamgourmet.com
Mon Dec 8 13:46:16 EST 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 "./example.py", line 5, in <module>
    print('hello', file=out)
  File "/usr/local/lib/python2.6/io.py", line 1487, in write
    s.__class__.__name__)
TypeError: can't write str to text stream

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

-Bill
-- 
Sattre Press                              History of Astronomy 
http://sattre-press.com/               During the 19th Century
info at sattre-press.com                       by Agnes M. Clerke
                              http://sattre-press.com/han.html



More information about the Python-list mailing list