On Dec 9, 11:28 am, Bill McClain <[EMAIL PROTECTED]> wrote: > On 2008-12-08, Bill McClain <[EMAIL PROTECTED]> wrote: > > > On 2008-12-08, Christian Heimes <[EMAIL PROTECTED]> wrote: > > > In this context 'str' means Python 3.0's str type, which is unicode in > > > 2.x. Please report the misleading error message. > > So this is an encoding problem? Can you give me a hint on how to correct in > > my > > example? I see that io.StringIO() has an encoding parameter, but I'm unclear > > what to specify. > > I still don't have this working. I've been specifying encodings without > success. > > The StringIO example usage in the Python 3.0 documentation here: > > http://docs.python.org/3.0/library/io.html#io.StringIO > > gives me the same error on 2.6: > > #! /usr/bin/env python > > from __future__ import print_function > import io > > output = io.StringIO() > output.write('First line.\n') > print('Second line.', file=output) > > # 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() > > ./stringio30.py > Traceback (most recent call last): > File "./stringio30.py", line 7, in <module> > output.write('First line.\n') > File "/usr/local/lib/python2.6/io.py", line 1487, in write > s.__class__.__name__) > TypeError: can't write str to text stream > > -Bill > -- > Sattre Press History of > Astronomyhttp://sattre-press.com/ During the 19th Century > [EMAIL PROTECTED] by Agnes M. Clerke > http://sattre-press.com/han.html
This puzzles me too. According to the documentation StringIO accepts both byte strings and unicode strings. Try to replace output.write('First line.\n') with output.write(unicode('First line.\n')) or output.write(str('First line.\n')) and see if one of those works. -- http://mail.python.org/mailman/listinfo/python-list