Python - importar archivo txt a sqlite

   
Vista:

importar archivo txt a sqlite

Publicado por guillermo (4 intervenciones) el 26/06/2014 18:59:29
Hola Buenas tardes a todos:
Consulto a ver si alguien me da una idea ya que no he conseguido entender cual es la forma correcta de hacer esto:
Tengo una base de datos en un archivo.txt de ventipico de columnas separadas por tabulacion.
lo puedo abrir leer con open() pero no se como importarlo a mi base sqlite. Estoy medio perdido alguna pista para empezar , gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

importar archivo txt a sqlite

Publicado por xve (1229 intervenciones) el 26/06/2014 20:15:18
Hola Guillermo, yo lo que haría, seria cargar el archivo, separar los campos por la tabulación, y hacer un insert con cada linea en la base de datos.

Con este simple ejemplo, te extrae todos los campos de cada una de las filas...
1
2
3
4
5
6
7
8
fichero = open('archivo.txt', 'r' )
 
for linea in fichero:
	campos=linea.split("\t")
	for i in campos:
		print i,
 
fichero.close()

Coméntanos si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

importar archivo txt a sqlite

Publicado por guillermo (4 intervenciones) el 26/06/2014 21:32:42
Esta perfecto muchas gracias, guarde el resultado en una variable , el único problema es que la base que esta en el archivo tiene 28 columnas y no se todavía como conectarme y hacer el insert into en sqlite. Voy a intentar y en todo caso pediré ayuda nuevamente.
Nuevamente gracias pronta ta pronta respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

importar archivo txt a sqlite

Publicado por xve (1229 intervenciones) el 27/06/2014 07:25:35
Hola Guillermo, estaría bien que compartieras tu código cuando lo tengas funcionando!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

importar archivo txt a sqlite

Publicado por guillermo (4 intervenciones) el 27/06/2014 15:00:34
Por supuesto xve, no se si funciona correctamente porque no pude importar a la base.
Lo que hice:

1
2
3
4
5
6
7
8
9
10
11
12
import tkinter.filedialog
 
def cargar_archivo():
    archivo = tkinter.filedialog.askopenfilename()
    fichero = open(archivo, 'r' )
 
    for linea in fichero:
        campos = linea.split("\t")
    fichero.close()
    return campos
 
a = cargar_archivo()

Es un txt plano de 28 columnas que deseo pasar a una base en sqlite que tengo creada, voy por buen camino?

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

importar archivo txt a sqlite

Publicado por xve (1229 intervenciones) el 27/06/2014 22:02:56
Hola Guillermo, creo que no esta del todo bien, ya que si haces un print de la variable a, creo que te devolverá únicamente los valores de la ultima linea.

1
2
3
4
5
6
7
8
9
10
11
12
13
import tkinter.filedialog
 
def cargar_archivo():
    archivo = tkinter.filedialog.askopenfilename()
    fichero = open(archivo, 'r' )
 
    for linea in fichero:
        campos = linea.split("\t")
        #### Aqui tendrias que hacer el insert!!!
    fichero.close()
    return True
 
a = cargar_archivo()

Donde te indico, tendrias que hacer el insert, ya que ahi para por cada linea de tu archivo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

importar archivo txt a sqlite

Publicado por guillermo (4 intervenciones) el 30/06/2014 16:19:29
Gracias xve, lo he importado así, sin exito, no me da error pero no me importa nada en la base, lo que estoy haciendo esta bien ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import tkinter.filedialog
import sqlite3
 
conn = sqlite3.connect('base.sqlite')
c = conn.cursor()
 
def cargar_archivo():
    archivo = tkinter.filedialog.askopenfilename()
    fichero = open(archivo, 'r' )
 
    for linea in fichero:
        campos = linea.split("\t")
        insert = """insert into table.base values ('%s', '%s', '%s', %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""" %("col1", "col2", "col3", 'col4', 'col5', 'col6', 'col7', 'col8', 'col9', 'col10', 'col11', 'col12', 'col13', 'col14', 'col15', 'cpl16', 'col17', 'col18', 'col19', 'col20', 'col21', 'col22', 'col23, 'col24', 'col25', 'col26', 'col27', 'col28')
    c.execute
    fichero.close()
    return True

a = cargar_archivo()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

importar archivo txt a sqlite

Publicado por xve (1229 intervenciones) el 30/06/2014 18:17:25
Hola Guillermo, a mi me da error!!!

Falta cerrar las comillas del 'col23...

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar