[pyar] csvreader no acepta list objects

Sebastián Schiavinato seba.schiavinato en gmail.com
Mar Jun 12 20:20:58 -03 2018


Usar pandas o más bajo nivel Numpy? Pandas es muy resilente respecto a
datos faltantes y esas cosas, muy util si viene de algún microcontrolador.

Si querés usar el paquete csv tenés que hacer a mano la lectura. Podés leer
todo el archivo, splitear por los CR (o LF, lo que sea) y luego por las
comas o separadores. Y ahí tenés lista de listas

Saludos

On Tue, 12 Jun 2018 at 16:57, Luis Andraschnik <luis.andraschnik en gmail.com>
wrote:

> Pretendía modelar en memoria un archivo csv  como lista de listas y ver si
> para procesarlo me servía para algo el módulo csvreader o lo hago a
> manopla. Para trabajar en una raspberrypi/Flask sin que se graben en la
> tarjeta de memoria los datos haría un upload (en memoria), un procesamiento
> y devolver un archivo
>
> Salu2
> Luis
>
> 2018-06-12 16:37 GMT-03:00 Tomas Zulberti <tzulberti en gmail.com>:
>
>>
>>
>> On Tue, Jun 12, 2018 at 4:30 PM, Luis Andraschnik <
>> luis.andraschnik en gmail.com> wrote:
>>
>>> Hola gente
>>>
>>> Según la doc de Python 3.6 :
>>>
>>> csv.reader(*csvfile*, *dialect='excel'*, ***fmtparams*)
>>>
>>> Return a reader object which will iterate over lines in the given
>>> *csvfile*. *csvfile* can be any object which supports the iterator
>>> <https://docs.python.org/3/glossary.html#term-iterator> protocol and
>>> returns a string each time its __next__() method is called — file
>>> objects <https://docs.python.org/3/glossary.html#term-file-object> and
>>> ---->>****list objects**** <<-------are both suitable
>>> ¿Porqué esto no funciona?
>>>
>>> import csv
>>> csv_list = [['Spam', 'Spam', 'Spam', 'Spam', 'Spam'], ['Baked Beans',
>>> 'Spam', 'Lovely Spam', 'Wonderful Spam']]
>>> with open(csv_list) as csvfile:
>>>     spamreader = csv.reader(csvfile, delimiter=',', quotechar="'")
>>>
>>
>>>
>>> Traceback (most recent call last):
>>>   File "prueba.py", line 3, in <module>
>>>     with open(csv_list) as csvfile:
>>> TypeError: invalid file: [['Spam', 'Spam', 'Spam', 'Spam', 'Spam'],
>>> ['Baked Beans', 'Spam', 'Lovely Spam', 'Wonderful Spam']]
>>>
>>>
>> Lo que no esta funcionando es el `open(csv_list)`. O sea, que en tu caso
>> deberias directamente hacer:
>>
>> import csv
>> csv_list = [['Spam', 'Spam', 'Spam', 'Spam', 'Spam'], ['Baked Beans',
>> 'Spam', 'Lovely Spam', 'Wonderful Spam']]
>> csv.reader(csv_list, delimiter=',', quotechar="'")
>>
>>
>> De todas formas, no entiendo muy bien lo que estas intentando de hacer
>> porque eso tampoco funciona
>> ya que la lista, deberia ser una lista de strings y no una lista de
>> listas. O sea, deberia ser algo asi:
>>
>> csv_list = ['Spam,Spam,Spam,Spam,Spam', 'Baked Beans,Spam,Lovely
>> Spam,Wonderful Spam']
>>
>>
>>>
>>>
>>> _______________________________________________
>>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>>> Sitio web: http://www.python.org.ar/
>>>
>>> Para administrar la lista (o desuscribirse) entrar a
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>>
>>
>>
>> _______________________________________________
>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> Sitio web: http://www.python.org.ar/
>>
>> Para administrar la lista (o desuscribirse) entrar a
>> http://listas.python.org.ar/listinfo/pyar
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar



-- 
Sebastián Schiavinato
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180612/a6605576/attachment-0001.html>


Más información sobre la lista de distribución pyar