Re: [Python-es] Guardar en CSV una lista y Cargar el contenido del CSV en la Lista
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
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
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
#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/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
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/