0

ご存知のようstrに、Python 言語のバージョン 2.x とバージョン 3.x では、型の意味が異なります。残念ながら、多くのフレームワークと API は、意味と動作の変更を無視して、それで動作することを期待しています。例として、loggingフレームワークとWSGIAPI があります。logging.StreamHandlera がストリームに書き込むとき、それはstr、notbytesおよび not を書き込みますunicode

非オプション:

  • StringIO.StringIO: Python 3.x では使用できません
  • io.BytesIO: Python 3.x がstr(つまり unicode) を書き込むと失敗します
  • io.StringIO: Python 2.x がstr (ie bytes) を書き込むと失敗します

StringIOでは、で動作するようなオブジェクトを取得するにはどうすればよいstrでしょうか?

4

1 に答える 1

1

sixライブラリには、次のように説明されている StringIO クラスがあります。

Python 2 の StringIO.StringIO と Python 3 の io.StringIO のエイリアス。

于 2013-09-17T09:25:10.740 に答える