ho fatto questo:Posso usare cStringIO come StringIO?
import cStringIO.StringIO as StringIO
e mi rendo conto che ho usato ovunque. Va bene? È trattato allo stesso modo di StringIO?
ho fatto questo:Posso usare cStringIO come StringIO?
import cStringIO.StringIO as StringIO
e mi rendo conto che ho usato ovunque. Va bene? È trattato allo stesso modo di StringIO?
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)
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.
Devo cambiare tutto? – TIMEX
@TIMEX: è necessario il supporto per i caratteri Unicode oltre ASCII? –
Nessuna idea. Sto solo usando StringIO per le immagini. e leggendo le immagini, quindi caricala su S3 – TIMEX