Re: [Python-es] Guardar en CSV una lista y Cargar el contenido del CSV en la Lista

2010-07-12 Por tema Olemis Lang (Simelix)
On 7/10/10, Juan Marcelo Leiva Sandoval chelitole...@gmail.com wrote:
 Hola, me presento me llamo marcelo soy nuevo en python y en la lista
  :) , bueno les cuento estoy creando un programita que guarda los datos
  de una fruta en una lista, despues de ingresar todos los datos en la
  lista esta deberia ser guarda en un archivo CVS separado por ' , '
  despues al abrir el programa este deberia cargar los datos del archivo
  CVS en la Lista.

[...]

  Espero me puedan guiar adjunto codigo, saludos.


{{{
#!py

 from StringIO import StringIO
 f = StringIO(1,2\n3,4)
 from csv import reader
 r = reader(f)
 l = [x for x in r]
 l
[['1', '2'], ['3', '4']]
}}}

Es análogo para escribir ;o)

-- 
Regards,

Olemis.

Blog ES: http://simelo-es.blogspot.com/
Blog EN: http://simelo-en.blogspot.com/

Featured article:
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


[Python-es] Guardar en CSV una lista y Cargar el contenido del CSV en la Lista

2010-07-10 Por tema Juan Marcelo Leiva Sandoval
Hola, me presento me llamo marcelo soy nuevo en python y en la lista
:) , bueno les cuento estoy creando un programita que guarda los datos
de una fruta en una lista, despues de ingresar todos los datos en la
lista esta deberia ser guarda en un archivo CVS separado por ' , '
despues al abrir el programa este deberia cargar los datos del archivo
CVS en la Lista.

Hasta el momento agrego datos a la lista sin problemas, guarda en el
archivo CVS pero no separado por ' , ' y lee al abrir el contenido del
archivo pero no lo carga dentro de la Lista.

Espero me puedan guiar adjunto codigo, saludos.


-- 
El buen Informático es como un Bibliotecario, no lo sabe todo pero
sabe donde buscarlo...
import os.path, csv

class Fruta:
def __init__(self, nombre, color, peso):
self.nombre = nombre
self.color = color
self.peso = peso
 
def __str__(self):
return %s %s %s % (self.nombre, self.color, self.peso)

 
#Lista para guardar los datos de cada Fruta 
lista_de_frutas = []

#Si existe el archivo e imprime el contenido pero no guarda los datos en la lista
if os.path.exists('frutasCSV.csv'):
	l = csv.reader(open('frutasCSV.csv', 'r'))
	for i in l:

		print i
		
#Si no existe lo crea
else:
	l = open('frutasCSV.csv', 'a')


#Para ingresar cada fruta y guardar en la lista
while True:
nombre = raw_input(Nombre: )
color = raw_input(Color: )
peso = raw_input(Peso: )
fruta = Fruta(nombre, color, peso)
lista_de_frutas.append(fruta)
 
#aca quiero guaradar los datos de la fruta en la lista pero no funciona   
#   grabar = csv.writer(open('frutasCSV.csv', 'a'))
#	grabar.writerow(fruta)

#Pregunta si quiero ingresar mas frutas
s = raw_input(Desea continuar [S/n]: )
 
if not s:
continue
elif s[0] == 's' or s[0] == 'S':
continue
else:
break



#//
#for fruta in lista_de_frutas:
	#fruta.writerow(item)		#este metodo de guardar funciona pero no guarada separado por ','
#l.write(%s\n % fruta)
#/


#muestra el contenido guardado en la lista
print
print Lista de frutas.center(79, #)
for fruta in lista_de_frutas:
print Nombre: %s\nColor: %s\nPeso: %s % (fruta.nombre, fruta.color, fruta.peso)
print 
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Guardar en CSV una lista y Cargar el contenido del CSV en la Lista

2010-07-10 Por tema Ricardo Cárdenes Medina
grabar.writerow(fruta)
_csv.Error: sequence expected

Como ves (por el mensaje de error), writerow espera que le pases una
secuencia de valores, no un objeto arbitrario.

Hay varias maneras de resolver esto. La más sencilla sería:

   grabar.writerow([fruta.nombre, fruta.color, fruta.peso])

Algo más orientado a objeto sería crear un método para la clase que
devuelva una tupla o lista con los valores; por ejemplo:

   grabar.writerow(fruta.como_tupla())

Por último, podrías hacer algo más pythonico: que los objetos de
clase Fruta se comporten como secuencias, declarando métodos __len__ y
__getitem__.
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Guardar en CSV una lista y Cargar el contenido del CSV en la Lista

2010-07-10 Por tema Juan Marcelo Leiva Sandoval
#aca quiero guaradar los datos de la fruta en la lista pero no funciona
grabar = csv.writer(open('frutasCSV.csv', 'a'))
grabar.writerow([fruta.nombre, fruta.color, fruta.peso])

en esa parte del codigo que cambie me sale el siguiente error:

  File frutasCSV.py, line 37
grabar = csv.writer(open('frutasCSV.csv', 'a'))
^
IndentationError: unexpected indent

muchas gracias Ricardo por tu ayuda :P

PD: solo descomente esas lineas y agregue los cambios


-- 
El buen Informático es como un Bibliotecario, no lo sabe todo pero
sabe donde buscarlo...
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Guardar en CSV una lista y Cargar el contenido del CSV en la Lista

2010-07-10 Por tema Ricardo Cárdenes Medina
2010/7/10 Juan Marcelo Leiva Sandoval chelitole...@gmail.com:
 #aca quiero guaradar los datos de la fruta en la lista pero no funciona
        grabar = csv.writer(open('frutasCSV.csv', 'a'))
        grabar.writerow([fruta.nombre, fruta.color, fruta.peso])

 en esa parte del codigo que cambie me sale el siguiente error:

  File frutasCSV.py, line 37
    grabar = csv.writer(open('frutasCSV.csv', 'a'))
    ^
 IndentationError: unexpected indent

Sí, cuando descomenté tu código me pasó similar. Recuerda que Python
usa el sangrado (la indentación) para determinar qué código pertenece
a un bloque, así que todo lo que pertenezca a un mismo bloque tiene
que estar alineado en la misma columna. Python te está advirtiendo de
que está encontrando algo que no parece pertenecer a nada.

Consejo aparte: intenta no mezclar espacios con tabulaciones. Usa unos
u otras, pero de forma consistente.
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Guardar en CSV una lista y Cargar el contenido del CSV en la Lista

2010-07-10 Por tema Juan Marcelo Leiva Sandoval
Ordene todo y me corre de lujo, voy a implementar algunas cositas mas
cualquier cosa pregunto, muchas gracias ;)

El 10/07/10, Ricardo Cárdenes Medina ricardo.carde...@gmail.com escribió:
 2010/7/10 Juan Marcelo Leiva Sandoval chelitole...@gmail.com:
 #aca quiero guaradar los datos de la fruta en la lista pero no funciona
        grabar = csv.writer(open('frutasCSV.csv', 'a'))
        grabar.writerow([fruta.nombre, fruta.color, fruta.peso])

 en esa parte del codigo que cambie me sale el siguiente error:

  File frutasCSV.py, line 37
    grabar = csv.writer(open('frutasCSV.csv', 'a'))
    ^
 IndentationError: unexpected indent

 Sí, cuando descomenté tu código me pasó similar. Recuerda que Python
 usa el sangrado (la indentación) para determinar qué código pertenece
 a un bloque, así que todo lo que pertenezca a un mismo bloque tiene
 que estar alineado en la misma columna. Python te está advirtiendo de
 que está encontrando algo que no parece pertenecer a nada.

 Consejo aparte: intenta no mezclar espacios con tabulaciones. Usa unos
 u otras, pero de forma consistente.
 ___
 Python-es mailing list
 Python-es@python.org
 http://mail.python.org/mailman/listinfo/python-es
 FAQ: http://python-es-faq.wikidot.com/



-- 
El buen Informático es como un Bibliotecario, no lo sabe todo pero
sabe donde buscarlo...
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/