<br><br><div class="gmail_quote">El 8 de junio de 2011 21:20, lopz <span dir="ltr">&lt;<a href="mailto:lowlifebob@gmail.com">lowlifebob@gmail.com</a>&gt;</span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

El día 8 de junio de 2011 21:40, Manuel Enrique González Ramírez<br>
<div><div></div><div class="h5">&lt;<a href="mailto:maengora@gmail.com">maengora@gmail.com</a>&gt; escribió:<br>
&gt;<br>
&gt;<br>
&gt; El 8 de junio de 2011 18:59, lopz &lt;<a href="mailto:lowlifebob@gmail.com">lowlifebob@gmail.com</a>&gt; escribió:<br>
&gt;&gt;<br>
&gt;&gt; El día 8 de junio de 2011 18:32, Manuel Enrique González Ramírez<br>
&gt;&gt; &lt;<a href="mailto:maengora@gmail.com">maengora@gmail.com</a>&gt; escribió:<br>
&gt;&gt; &gt; El 8 de junio de 2011 16:43, Carlos Zuniga &lt;<a href="mailto:carlos.zun@gmail.com">carlos.zun@gmail.com</a>&gt;<br>
&gt;&gt; &gt; escribió:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Hola,<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; 2011/6/8 Manuel Enrique González Ramírez &lt;<a href="mailto:maengora@gmail.com">maengora@gmail.com</a>&gt;:<br>
&gt;&gt; &gt;&gt; &gt; Hola a tod@s,<br>
&gt;&gt; &gt;&gt; &gt; Estoy tratando de insertar un archivo desde Python con SQLite.  La<br>
&gt;&gt; &gt;&gt; &gt; primera<br>
&gt;&gt; &gt;&gt; &gt; vez funciono sin inconvenientes, pero al vaciar la tabla y correr<br>
&gt;&gt; &gt;&gt; &gt; nuevamente<br>
&gt;&gt; &gt;&gt; &gt; el script falla arrojando este error:<br>
&gt;&gt; &gt;&gt; &gt; Traceback (most recent call last):<br>
&gt;&gt; &gt;&gt; &gt;   File &quot;/home/manuel/python/diferencias/temp2.py&quot;, line 45, in<br>
&gt;&gt; &gt;&gt; &gt; &lt;module&gt;<br>
&gt;&gt; &gt;&gt; &gt;     c.executemany(&#39;insert into tabla(secuencia) values(?)&#39;, secc)<br>
&gt;&gt; &gt;&gt; &gt; AttributeError: &#39;str&#39; object has no attribute &#39;executemany&#39;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Parece que tu objeto c es una cadena de texto, no un cursor de sqlite<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; El fragmento del codigo<br>
&gt;&gt; &gt;&gt; &gt; secc= csv.reader(open(&#39;datosg.csv&#39;))<br>
&gt;&gt; &gt;&gt; &gt; c.executemany(&#39;insert into tabla(secuencia) values(?)&#39;, secc)<br>
&gt;&gt; &gt;&gt; &gt; conexion.commit()<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Tal vez te falta c = conexion.cursor() antes de ese fragmento?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;  Ya la tenía definida:<br>
&gt;&gt; &gt; # Datos de conexion<br>
&gt;&gt; &gt; conexion = sqlite3.connect(&#39;dif_db.sqlite&#39;)<br>
&gt;&gt; &gt; # Configuracion del cursor<br>
&gt;&gt; &gt; c = conexion.cursor()<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; lo tienes así?<br>
&gt;&gt;<br>
&gt;&gt; conexion = sqlite3.connect(&#39;dif_db.sqlite&#39;)<br>
&gt;&gt; c = conexion.cursor()<br>
&gt;&gt; c.execute.....<br>
&gt;&gt;<br>
&gt;&gt; Si es así no debería decirte que c es un str, podrías poner el código<br>
&gt;&gt; completo de esa parte?<br>
&gt;<br>
&gt; Código completo<br>
&gt; #!/usr/bin/env python<br>
&gt; # -*- coding: cp1252 -*-<br>
&gt; import os,sys,csv<br>
&gt; import sqlite3<br>
&gt; # Datos de conexion<br>
&gt; conexion = sqlite3.connect(&#39;dif_db.sqlite&#39;)<br>
&gt; # Configuracion del cursor<br>
&gt; c = conexion.cursor()<br>
&gt; # Limpio las tablas<br>
&gt; c.execute(&#39;delete from tabla1&#39;)<br>
&gt; conexion.commit()<br>
&gt; print &#39;Tabla1 inicializada&#39;<br>
&gt; c.execute(&#39;delete from tabla2&#39;)<br>
&gt; conexion.commit()<br>
&gt; print &#39;Tabla2  inicializada&#39;<br>
&gt; # Solicito el nombre de los archivos a analizar<br>
&gt; fc = open(&#39;archivo1.txt&#39;,&#39;r&#39;)<br>
&gt; fg = open(&#39;archivo2.txt&#39;,&#39;r&#39;)<br>
&gt; ficherosalida = open(&#39;datosc.csv&#39;,&#39;w&#39;)<br>
&gt; for linea in fc:<br>
&gt;     ficherosalida.write(linea.split(&#39;|&#39;)[-1])<br>
&gt; fc.close()<br>
&gt; ficherosalida.close()<br>
&gt; print &#39;Datos de Tabla1 preparados&#39;<br>
&gt; ficherosalida2 = open(&#39;datosg.csv&#39;,&#39;w&#39;)<br>
&gt; for linea2 in fg:<br>
&gt;     c = linea2[7:17]<br></div></div></blockquote><div><br></div><div>A esto es lo que solemos llamarle de forma coloquial.... error de indio.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div><div class="h5"><br>
</div></div>En esta parte está sobre escribiendo tu variable y se le asigna un<br>
tipo str, con cambiar:<br>
c = linea2[7:17]<br>
por<br>
linea = linea2[7:17]<br>
y<br>
&gt;     ficherosalida2.write(c)<br>
<br>
por ficherosalida2.write(linea)<br>
<br>
deberia funcionar<br>
<div class="im"><br>
&gt;     ficherosalida2.write(&#39;\n&#39;)<br>
&gt; fg.close()<br>
&gt; ficherosalida2.close()<br>
&gt;<br>
&gt;<br>
&gt; # Abre el archivo y lo prepara para insertar los datos<br>
&gt; # en la bdd<br>
&gt; secc= csv.reader(open(&#39;datosg.csv&#39;))<br>
&gt; c.executemany(&#39;insert into tabla1(secuencia) values(?)&#39;, secc)<br>
&gt; conexion.commit()<br>
&gt; conexion.close()<br>
&gt;<br>
<br></div></blockquote><div><meta http-equiv="content-type" content="text/html; charset=utf-8"><div>Ahora  me vota este error:</div><div>c.executemany(&#39;insert into tabla1(secuencia) values(?)&#39;, secc)</div><div>ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 0 supplied. </div>

</div><div><br></div><div>Tocará leer más a ver dónde está el error; por ahora, a trabajar....</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">


</div>Y.. es que por eso se recomienda poner nombres de variables que<br>
describan al objeto,<br>
por ejemplo cursor en lugar de c me parece mejor<br>
<div><div></div><div class="h5"><br>
<br>
&gt;&gt;<br>
&gt;&gt; saludOS<br>
&gt;&gt;<br>
&gt;&gt; &gt;&gt; Saludos<br>
&gt;&gt; &gt;&gt; --<br>
&gt;&gt; &gt;&gt; Linux Registered User # 386081<br>
&gt;&gt; &gt;&gt; A menudo unas pocas horas de &quot;Prueba y error&quot; podrán ahorrarte minutos<br>
&gt;&gt; &gt;&gt; de leer manuales.<br>
&gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; Python-es mailing list<br>
&gt;&gt; &gt;&gt; <a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
&gt;&gt; &gt;&gt; <a href="http://mail.python.org/mailman/listinfo/python-es" target="_blank">http://mail.python.org/mailman/listinfo/python-es</a><br>
&gt;&gt; &gt;&gt; FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; --<br>
&gt;&gt; &gt; Manuel Enrique González Ramírez<br>
&gt;&gt; &gt; <a href="http://maengora.blogspot.com" target="_blank">http://maengora.blogspot.com</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; Python-es mailing list<br>
&gt;&gt; &gt; <a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
&gt;&gt; &gt; <a href="http://mail.python.org/mailman/listinfo/python-es" target="_blank">http://mail.python.org/mailman/listinfo/python-es</a><br>
&gt;&gt; &gt; FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; lopz es libre, usa --&gt; GNU/linux gentoo<br>
&gt;&gt;<br>
&gt;&gt; +--[RSA 2048]--+<br>
&gt;&gt; |  ..o.o=+       |<br>
&gt;&gt; |   o =o*.+      |<br>
&gt;&gt; |  . . *oO .      |<br>
&gt;&gt; |     .EBoo      |<br>
&gt;&gt; |      o.S         |<br>
&gt;&gt; +--[<a href="http://lopz.org" target="_blank">lopz.org</a>]--+<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Python-es mailing list<br>
&gt;&gt; <a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
&gt;&gt; <a href="http://mail.python.org/mailman/listinfo/python-es" target="_blank">http://mail.python.org/mailman/listinfo/python-es</a><br>
&gt;&gt; FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Manuel Enrique González Ramírez<br>
&gt; <a href="http://maengora.blogspot.com" target="_blank">http://maengora.blogspot.com</a><br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Python-es mailing list<br>
&gt; <a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
&gt; <a href="http://mail.python.org/mailman/listinfo/python-es" target="_blank">http://mail.python.org/mailman/listinfo/python-es</a><br>
&gt; FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
--<br>
lopz es libre, usa --&gt; GNU/linux gentoo<br>
<br>
+--[RSA 2048]--+<br>
|  ..o.o=+       |<br>
|   o =o*.+      |<br>
|  . . *oO .      |<br>
|     .EBoo      |<br>
|      o.S         |<br>
+--[<a href="http://lopz.org" target="_blank">lopz.org</a>]--+<br>
_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/python-es" target="_blank">http://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Manuel Enrique González Ramírez<br><a href="http://maengora.blogspot.com">http://maengora.blogspot.com</a><br>