如何在 Python3 中使用 StringIO?

新手上路,请多包涵

我正在使用 Python 3.2.1,但无法导入 StringIO 模块。我使用 io.StringIO 它可以工作,但我不能将它与 numpygenfromtxt 一起使用,如下所示:

 x="1 3\n 4.5 8"
numpy.genfromtxt(io.StringIO(x))

我收到以下错误:

 TypeError: Can't convert 'bytes' object to str implicitly

当我写 import StringIO 它说

ImportError: No module named 'StringIO'

原文由 Babak Abdolahi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 966
1 个回答

当我写 import StringIO 它说没有这样的模块。

来自 Python 3.0 的新功能

StringIOcStringIO 模块不见了。相反,导入 io 模块并使用 io.StringIOio.BytesIO 分别用于文本和数据。

.


修复一些 Python 2 代码以使其在 Python 3 中也能工作的可能有用的方法(买者自负):

 try:
    from StringIO import StringIO ## for Python 2
except ImportError:
    from io import StringIO ## for Python 3

注意:此示例可能与问题的主要问题无关,仅作为一般解决丢失的 StringIO 模块时要考虑的内容。 有关消息 TypeError: Can't convert 'bytes' object to str implicitly 的更直接解决方案,请参阅 此答案

原文由 Brent Bradburn 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题