I am using Python 3.2.1 and I can't import the
StringIO module. I use
io.StringIO and it works, but I can't use it with
genfromtxt like this:
x="1 3\n 4.5 8" numpy.genfromtxt(io.StringIO(x))
I get the following error:
TypeError: Can't convert 'bytes' object to str implicitly
and when I write
import StringIO it says
ImportError: No module named 'StringIO'
when i write import StringIO it says there is no such module.
From What’s New In Python 3.0:
cStringIOmodules are gone. Instead, import the
iomodule and use
io.BytesIOfor text and data respectively.
A possibly useful method of fixing some Python 2 code to also work in Python 3 (caveat emptor):
try: from StringIO import StringIO ## for Python 2 except ImportError: from io import StringIO ## for Python 3
Note: This example may be tangential to the main issue of the question and is included only as something to consider when generically addressing the missing
StringIOmodule. For a more direct solution the the message
TypeError: Can't convert 'bytes' object to str implicitly, see this answer.