El día 8 de junio de 2011 21:40, Manuel Enrique González Ramírez <maeng...@gmail.com> escribió: > > > El 8 de junio de 2011 18:59, lopz <lowlife...@gmail.com> escribió: >> >> El día 8 de junio de 2011 18:32, Manuel Enrique González Ramírez >> <maeng...@gmail.com> escribió: >> > El 8 de junio de 2011 16:43, Carlos Zuniga <carlos....@gmail.com> >> > escribió: >> >> >> >> Hola, >> >> >> >> 2011/6/8 Manuel Enrique González Ramírez <maeng...@gmail.com>: >> >> > Hola a tod@s, >> >> > Estoy tratando de insertar un archivo desde Python con SQLite. La >> >> > primera >> >> > vez funciono sin inconvenientes, pero al vaciar la tabla y correr >> >> > nuevamente >> >> > el script falla arrojando este error: >> >> > Traceback (most recent call last): >> >> > File "/home/manuel/python/diferencias/temp2.py", line 45, in >> >> > <module> >> >> > c.executemany('insert into tabla(secuencia) values(?)', secc) >> >> > AttributeError: 'str' object has no attribute 'executemany' >> >> >> >> Parece que tu objeto c es una cadena de texto, no un cursor de sqlite >> >> >> >> > >> >> > El fragmento del codigo >> >> > secc= csv.reader(open('datosg.csv')) >> >> > c.executemany('insert into tabla(secuencia) values(?)', secc) >> >> > conexion.commit() >> >> > >> >> >> >> Tal vez te falta c = conexion.cursor() antes de ese fragmento? >> > >> > Ya la tenía definida: >> > # Datos de conexion >> > conexion = sqlite3.connect('dif_db.sqlite') >> > # Configuracion del cursor >> > c = conexion.cursor() >> >> >> >> lo tienes así? >> >> conexion = sqlite3.connect('dif_db.sqlite') >> c = conexion.cursor() >> c.execute..... >> >> Si es así no debería decirte que c es un str, podrías poner el código >> completo de esa parte? > > Código completo > #!/usr/bin/env python > # -*- coding: cp1252 -*- > import os,sys,csv > import sqlite3 > # Datos de conexion > conexion = sqlite3.connect('dif_db.sqlite') > # Configuracion del cursor > c = conexion.cursor() > # Limpio las tablas > c.execute('delete from tabla1') > conexion.commit() > print 'Tabla1 inicializada' > c.execute('delete from tabla2') > conexion.commit() > print 'Tabla2 inicializada' > # Solicito el nombre de los archivos a analizar > fc = open('archivo1.txt','r') > fg = open('archivo2.txt','r') > ficherosalida = open('datosc.csv','w') > for linea in fc: > ficherosalida.write(linea.split('|')[-1]) > fc.close() > ficherosalida.close() > print 'Datos de Tabla1 preparados' > ficherosalida2 = open('datosg.csv','w') > for linea2 in fg: > c = linea2[7:17]
En esta parte está sobre escribiendo tu variable y se le asigna un tipo str, con cambiar: c = linea2[7:17] por linea = linea2[7:17] y > ficherosalida2.write(c) por ficherosalida2.write(linea) deberia funcionar > ficherosalida2.write('\n') > fg.close() > ficherosalida2.close() > > > # Abre el archivo y lo prepara para insertar los datos > # en la bdd > secc= csv.reader(open('datosg.csv')) > c.executemany('insert into tabla1(secuencia) values(?)', secc) > conexion.commit() > conexion.close() > Y.. es que por eso se recomienda poner nombres de variables que describan al objeto, por ejemplo cursor en lugar de c me parece mejor >> >> saludOS >> >> >> Saludos >> >> -- >> >> Linux Registered User # 386081 >> >> A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos >> >> de leer manuales. >> >> _______________________________________________ >> >> Python-es mailing list >> >> Python-es@python.org >> >> http://mail.python.org/mailman/listinfo/python-es >> >> FAQ: http://python-es-faq.wikidot.com/ >> > >> > >> > >> > -- >> > Manuel Enrique González Ramírez >> > http://maengora.blogspot.com >> > >> > _______________________________________________ >> > Python-es mailing list >> > Python-es@python.org >> > http://mail.python.org/mailman/listinfo/python-es >> > FAQ: http://python-es-faq.wikidot.com/ >> > >> > >> >> >> >> -- >> lopz es libre, usa --> GNU/linux gentoo >> >> +--[RSA 2048]--+ >> | ..o.o=+ | >> | o =o*.+ | >> | . . *oO . | >> | .EBoo | >> | o.S | >> +--[lopz.org]--+ >> _______________________________________________ >> Python-es mailing list >> Python-es@python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ > > > > -- > Manuel Enrique González Ramírez > http://maengora.blogspot.com > > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- lopz es libre, usa --> GNU/linux gentoo +--[RSA 2048]--+ | ..o.o=+ | | o =o*.+ | | . . *oO . | | .EBoo | | o.S | +--[lopz.org]--+ _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/