2011-01-13 6 views

Antwort

25

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) 
+0

Sollte ich alles ändern? – TIMEX

+0

@TIMEX: Benötigen Sie Unterstützung für Unicode-Zeichen jenseits von ASCII? –

+0

Keine Ahnung. Ich verwende nur StringIO für Bilder. und lese Bilder, dann lade es in S3 hoch – TIMEX

6

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.

Verwandte Themen