私はこれでした:StringIOと同じcStringIOを使用できますか?
import cStringIO.StringIO as StringIO
をそして私は、私はどこにでもそれを使用してきた実感します。それはいいですか? StringIOと同じ扱いですか?
私はこれでした:StringIOと同じcStringIOを使用できますか?
import cStringIO.StringIO as StringIO
をそして私は、私はどこにでもそれを使用してきた実感します。それはいいですか? StringIOと同じ扱いですか?
これらは同じではありません。 cStringIO
はUnicode文字を正しく処理しません。
>>> StringIO.StringIO().write(u'\u0080')
>>> cStringIO.StringIO().write(u'\u0080')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\x80' in position 0: ordinal not in range(128)
もあなたはcStringIO.StringIOインスタンスの属性を設定することができます。cStringIO.StringIOはでは動作しませんので
>>> from cStringIO import StringIO
>>> s = StringIO()
>>> s.name = 'myfile'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'cStringIO.StringO' object has no attribute 'name'
いくつかのライブラリは、どちらかname
またはcontent_type
属性を持つファイルのようなオブジェクトに依存これらのインスタンス。
私はそれをすべて変更する必要がありますか? – TIMEX
@TIMEX:ASCII以外のUnicode文字のサポートが必要ですか? –
いいえ、考えられません。私は絵のためにStringIOを使用しています。写真を読んでS3にアップロードする – TIMEX