Ich tat dies:Kann ich cStringIO genauso verwenden wie StringIO?
import cStringIO.StringIO as StringIO
Und ich weiß, ich habe es überall im Einsatz. Ist das gut? Wird es genauso behandelt wie StringIO?
Ich tat dies:Kann ich cStringIO genauso verwenden wie StringIO?
import cStringIO.StringIO as StringIO
Und ich weiß, ich habe es überall im Einsatz. Ist das gut? Wird es genauso behandelt wie StringIO?
Sie sind nicht das Gleiche. behandelt Unicode-Zeichen nicht korrekt.
>>> 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)
Auch können Sie festlegen, Attribute auf einem cStringIO.StringIO Beispiel:
>>> 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'
Mehrere Bibliotheken hängen von Dateiähnliche Objekte entweder eine name
oder content_type
Attribut, so cStringIO.StringIO nicht in funktioniert diese Instanzen.
Sollte ich alles ändern? – TIMEX
@TIMEX: Benötigen Sie Unterstützung für Unicode-Zeichen jenseits von ASCII? –
Keine Ahnung. Ich verwende nur StringIO für Bilder. und lese Bilder, dann lade es in S3 hoch – TIMEX