2009-12-09 4 views

risposta

14

Se si sta utilizzando Python 2.6 o superiore, è possibile utilizzare la classe io.StringIO dopo aver letto il vostro file in memoria (utilizzando il metodo read()). Esempio:

>>> import io 
>>> s = u"a\r\nb\nc\rd" 
>>> sio = io.StringIO(s, newline=None) 
>>> sio.readlines() 
[u'a\n', u'b\n', u'c\n', u'd'] 

Per utilizzare effettivamente questo in vista Django, potrebbe essere necessario convertire i dati del file di input per unicode:

stream = io.StringIO(unicode(request.FILES['foo'].read()), newline=None) 
+0

Questa grande opera. Lo uso insieme a csv.DictReader nella mia vista django. 'reader = csv.DictReader (stream)' then 'per row in reader: #import ogni riga 'Qualche idea su cosa farà con l'utilizzo della memoria? Sono un "budget" :) So che probabilmente dovrei semplicemente salvare il file in una posizione temporanea, ma sono curioso di sapere se per il momento ho bisogno di fare una pulizia simile a quella dei rifiuti? – teewuane

Problemi correlati