如何获取适用于 str 类型的 StringIO



正如我们所知,当涉及到Python语言的版本2.x和版本3.x时,str类型具有不同的含义。不幸的是,许多框架和API希望与它一起工作,而忽略了含义和行为的变化。例如logging框架和WSGI API。当logging.StreamHandler写入流时,它会写入str,而不是bytes,也不会写入unicode

非选项:

  • StringIO.StringIO:在 Python 3.x 中不可用
  • io.BytesIO:当Python 3.x向其写入str(即Unicode)时失败
  • io.StringIO:当Python 2.x写入str时失败(即 bytes ) 到它

那么如何获得一个StringIO类对象,可以与str一起使用呢?

six库有一个可能适合您的 StringIO 类,描述如下:

Python 2 和 io 中 StringIO.StringIO 的别名。Python 3 中的 StringIO

最新更新