StringIO in 2.6 and beyond
Bill McClain
20080915.20.wmcclain at spamgourmet.com
Wed Dec 10 06:58:37 EST 2008
On 2008-12-10, ajaksu <ajaksu at gmail.com> wrote:
> On Dec 9, 5:24 pm, Bill McClain <20080915.20.wmccl... at spamgourmet.com>
> wrote:
> > On 2008-12-09, MRAB <goo... at mrabarnett.plus.com> wrote:
> >
> > > In Python 2.x unmarked string literals are bytestrings. In Python 3.x
> > > they're Unicode. The intention is to make the transition from 2.x to 3.x
> > > easier by adding some features of 3.x to 2.x, but without breaking
> > > backwards compatibility (not entirely successfully!).
> >
> > It is a bit ugly. In 2.6 StringIO won't take bytestrings, so I apply u'x'. But
> > in 3.0 u'x' will be gone and I'll have to change the code again.
> Try:
> from __future__ import unicode_literals
That works for:
output.write('First line.\n')
...but not for:
print('Second line.', file=output)
Maybe a combination of this and functools.partial as was suggested before. At
least the necessary edits would be at the top of the program.
-Bill
--
Sattre Press Tales of War
http://sattre-press.com/ by Lord Dunsany
info at sattre-press.com http://sattre-press.com/tow.html
More information about the Python-list
mailing list