Discussion:
[pyar] csvreader no acepta list objects
Luis Andraschnik
2018-06-12 19:30:12 UTC
Permalink
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']]
Tomas Zulberti
2018-06-12 19:37:09 UTC
Permalink
On Tue, Jun 12, 2018 at 4:30 PM, Luis Andraschnik <
Post by Luis Andraschnik
Hola gente
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']]
spamreader = csv.reader(csvfile, delimiter=',', quotechar="'")
File "prueba.py", line 3, in <module>
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']
Post by Luis Andraschnik
_______________________________________________
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
Luis Andraschnik
2018-06-12 19:57:39 UTC
Permalink
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
Post by Tomas Zulberti
On Tue, Jun 12, 2018 at 4:30 PM, Luis Andraschnik <
Post by Luis Andraschnik
Hola gente
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']]
spamreader = csv.reader(csvfile, delimiter=',', quotechar="'")
File "prueba.py", line 3, in <module>
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
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
csv_list = ['Spam,Spam,Spam,Spam,Spam', 'Baked Beans,Spam,Lovely
Spam,Wonderful Spam']
Post by Luis Andraschnik
_______________________________________________
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
_______________________________________________
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
2018-06-12 23:20:58 UTC
Permalink
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
Post by Luis Andraschnik
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
Post by Tomas Zulberti
On Tue, Jun 12, 2018 at 4:30 PM, Luis Andraschnik <
Post by Luis Andraschnik
Hola gente
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']]
spamreader = csv.reader(csvfile, delimiter=',', quotechar="'")
File "prueba.py", line 3, in <module>
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
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
csv_list = ['Spam,Spam,Spam,Spam,Spam', 'Baked Beans,Spam,Lovely
Spam,Wonderful Spam']
Post by Luis Andraschnik
_______________________________________________
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
_______________________________________________
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
_______________________________________________
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
Gastón Paris
2018-06-13 15:22:22 UTC
Permalink
Hola Luis,

Lo querés hacer con pandas te va a ahorrar dolores de cabeza y varias
lineas de código.

Primero creas un dataframe con pandas que es una tabla

import pandas as pd

csv_list = [['Spam', 'Spam', 'Spam', 'Spam', 'Spam'], ['Baked Beans',
'Spam', 'Lovely Spam', 'Wonderful Spam']]

df = pd.DataFrame(csv_list)

print(df)

0 1 2 3 4
0 Spam Spam Spam Spam Spam
1 Baked Beans Spam Lovely Spam Wonderful Spam None


Fijate que el dato que falta le pone None. Además le agrega encabezado
e índice que se pueden cambiar a lo que te guste.


Luego lo salvas en CSV


df.to_csv('csvfile.csv', header = False, index = False)


#Contenido del archivo

Spam,Spam,Spam,Spam,Spam
Baked Beans,Spam,Lovely Spam,Wonderful Spam,


Finalmente podés leerlo de nuevo


df_de_archivo = pd.read_csv('csvfile.csv', header = None)

print(df_de_archivo)


0 1 2 3 4
0 Spam Spam Spam Spam Spam
1 Baked Beans Spam Lovely Spam Wonderful Spam NaN


Fijate que cambio el None por NaN, esto también se puede controlar.


Un abrazo


Gastón


On Tue, Jun 12, 2018 at 8:21 PM Sebastián Schiavinato <
Post by Sebastián Schiavinato
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
Post by Luis Andraschnik
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
Post by Tomas Zulberti
On Tue, Jun 12, 2018 at 4:30 PM, Luis Andraschnik <
Post by Luis Andraschnik
Hola gente
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']]
spamreader = csv.reader(csvfile, delimiter=',', quotechar="'")
File "prueba.py", line 3, in <module>
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
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
csv_list = ['Spam,Spam,Spam,Spam,Spam', 'Baked Beans,Spam,Lovely
Spam,Wonderful Spam']
Post by Luis Andraschnik
_______________________________________________
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
_______________________________________________
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
_______________________________________________
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
_______________________________________________
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
--
Gastón Paris
***@gmail.com
Luis Andraschnik
2018-06-14 18:33:02 UTC
Permalink
Si claro , uso bastante Pandas y Numpy. Cómo estoy haciendo una appweb que
corre en una Raspi, para no usar la memoria sd como disco estoy
reescribiendo mis utilidades para trabajar en memoria con file-like
objects. Por eso tengo que verificar que parámetros de entrada tienen esas
funciones y clases.

Por ejemplo, ahora estoy con un formato binario de espectros que se llama
Thermograms (.SPC) y me topé con que el módulo de terceros (spc.py) que
uso para leerlos, sólo acepta file-path , así que tuve que hacer un nuevo
módulo "spc_new.py" dónde hago una clase customFile que hereda de spc.File,
sobreescribo el método __init__, cambio un par de líneas y voilá!!!

Lo que no me esperaba era que en el módulo con mi nueva clase tengo que
hacer los mismos imports que contiene el módulo original.No basta, ni sirve
para nada, con importar el módulo original y todo su espacio de nombres.

Saludos
Luis
Post by Gastón Paris
Hola Luis,
Lo querés hacer con pandas te va a ahorrar dolores de cabeza y varias
lineas de código.
Primero creas un dataframe con pandas que es una tabla
import pandas as pd
csv_list = [['Spam', 'Spam', 'Spam', 'Spam', 'Spam'], ['Baked Beans',
'Spam', 'Lovely Spam', 'Wonderful Spam']]
df = pd.DataFrame(csv_list)
print(df)
0 1 2 3 4
0 Spam Spam Spam Spam Spam
1 Baked Beans Spam Lovely Spam Wonderful Spam None
Fijate que el dato que falta le pone None. Además le agrega encabezado e índice que se pueden cambiar a lo que te guste.
Luego lo salvas en CSV
df.to_csv('csvfile.csv', header = False, index = False)
#Contenido del archivo
Spam,Spam,Spam,Spam,Spam
Baked Beans,Spam,Lovely Spam,Wonderful Spam,
Finalmente podés leerlo de nuevo
df_de_archivo = pd.read_csv('csvfile.csv', header = None)
print(df_de_archivo)
0 1 2 3 4
0 Spam Spam Spam Spam Spam
1 Baked Beans Spam Lovely Spam Wonderful Spam NaN
Fijate que cambio el None por NaN, esto también se puede controlar.
Un abrazo
Gastón
On Tue, Jun 12, 2018 at 8:21 PM Sebastián Schiavinato <
Post by Sebastián Schiavinato
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 <
Post by Luis Andraschnik
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
Post by Tomas Zulberti
On Tue, Jun 12, 2018 at 4:30 PM, Luis Andraschnik <
Post by Luis Andraschnik
Hola gente
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']]
spamreader = csv.reader(csvfile, delimiter=',', quotechar="'")
File "prueba.py", line 3, in <module>
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
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
csv_list = ['Spam,Spam,Spam,Spam,Spam', 'Baked Beans,Spam,Lovely
Spam,Wonderful Spam']
Post by Luis Andraschnik
_______________________________________________
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
_______________________________________________
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
_______________________________________________
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
_______________________________________________
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
--
Gastón Paris
_______________________________________________
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
Juan Carizza
2018-06-14 18:59:33 UTC
Permalink
Hola Luis, interpretando lo que dice la documentación el primer parámetro
es un file object [0], y lo que estas pasando es
una objeto de tipo lista que no implementa ninguno de los métodos .read() o
.write() que te está pidiendo.

Lo que estás intentando se hace con StringIO [1] que genera un objeto
"file-like" para que puedas usar:

import csv
import io

csv_file = io.StringIO('''col1,col2,col3
hola,mundo,python
''')

with csv_file as csvfile:
spamreader = csv.reader(csvfile, delimiter=',', quotechar="'")
for x in spamreader:
print(x)


[0] https://docs.python.org/3/glossary.html#term-file-object
[1] https://docs.python.org/3/library/io.html
[3] https://onlinegdb.com/BkWCcExZm
Post by Luis Andraschnik
Si claro , uso bastante Pandas y Numpy. Cómo estoy haciendo una appweb que
corre en una Raspi, para no usar la memoria sd como disco estoy
reescribiendo mis utilidades para trabajar en memoria con file-like
objects. Por eso tengo que verificar que parámetros de entrada tienen esas
funciones y clases.
Por ejemplo, ahora estoy con un formato binario de espectros que se llama
Thermograms (.SPC) y me topé con que el módulo de terceros (spc.py) que
uso para leerlos, sólo acepta file-path , así que tuve que hacer un nuevo
módulo "spc_new.py" dónde hago una clase customFile que hereda de spc.File,
sobreescribo el método __init__, cambio un par de líneas y voilá!!!
Lo que no me esperaba era que en el módulo con mi nueva clase tengo que
hacer los mismos imports que contiene el módulo original.No basta, ni sirve
para nada, con importar el módulo original y todo su espacio de nombres.
Saludos
Luis
Post by Gastón Paris
Hola Luis,
Lo querés hacer con pandas te va a ahorrar dolores de cabeza y varias
lineas de código.
Primero creas un dataframe con pandas que es una tabla
import pandas as pd
csv_list = [['Spam', 'Spam', 'Spam', 'Spam', 'Spam'], ['Baked Beans',
'Spam', 'Lovely Spam', 'Wonderful Spam']]
df = pd.DataFrame(csv_list)
print(df)
0 1 2 3 4
0 Spam Spam Spam Spam Spam
1 Baked Beans Spam Lovely Spam Wonderful Spam None
Fijate que el dato que falta le pone None. Además le agrega encabezado e índice que se pueden cambiar a lo que te guste.
Luego lo salvas en CSV
df.to_csv('csvfile.csv', header = False, index = False)
#Contenido del archivo
Spam,Spam,Spam,Spam,Spam
Baked Beans,Spam,Lovely Spam,Wonderful Spam,
Finalmente podés leerlo de nuevo
df_de_archivo = pd.read_csv('csvfile.csv', header = None)
print(df_de_archivo)
0 1 2 3 4
0 Spam Spam Spam Spam Spam
1 Baked Beans Spam Lovely Spam Wonderful Spam NaN
Fijate que cambio el None por NaN, esto también se puede controlar.
Un abrazo
Gastón
On Tue, Jun 12, 2018 at 8:21 PM Sebastián Schiavinato <
Post by Sebastián Schiavinato
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 <
Post by Luis Andraschnik
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
Post by Tomas Zulberti
On Tue, Jun 12, 2018 at 4:30 PM, Luis Andraschnik <
Post by Luis Andraschnik
Hola gente
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']]
spamreader = csv.reader(csvfile, delimiter=',', quotechar="'")
File "prueba.py", line 3, in <module>
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
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
csv_list = ['Spam,Spam,Spam,Spam,Spam', 'Baked Beans,Spam,Lovely
Spam,Wonderful Spam']
Post by Luis Andraschnik
_______________________________________________
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
_______________________________________________
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
_______________________________________________
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
_______________________________________________
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
--
Gastón Paris
_______________________________________________
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
_______________________________________________
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
Loading...