2011-01-13 10 views

risposta

25

Non sono la stessa cosa. cStringIO non gestisce correttamente i caratteri 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) 
+0

Devo cambiare tutto? – TIMEX

+0

@TIMEX: è necessario il supporto per i caratteri Unicode oltre ASCII? –

+0

Nessuna idea. Sto solo usando StringIO per le immagini. e leggendo le immagini, quindi caricala su S3 – TIMEX

6

né è possibile impostare gli attributi di un'istanza 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' 

diverse librerie dipendono da oggetti simili a file aventi una un attributo name o content_type, quindi cStringIO.StringIO non funziona in questi casi.