¿Es posible exportar tabla sqlite3 a csv o similar?

¿Es posible exportar la tabla sqlite3 a formato csv o xls? Estoy usando python 2.7 y sqlite3.

Toqué este script muy básico usando una clase de ejemplo ligeramente modificada de los documentos ; simplemente exporta una tabla completa a un archivo CSV:

import sqlite3 import csv, codecs, cStringIO class UnicodeWriter: """ A CSV writer which will write rows to CSV file "f", which is encoded in the given encoding. """ def __init__(self, f, dialect=csv.excel, encoding="utf-8", **kwds): # Redirect output to a queue self.queue = cStringIO.StringIO() self.writer = csv.writer(self.queue, dialect=dialect, **kwds) self.stream = f self.encoder = codecs.getincrementalencoder(encoding)() def writerow(self, row): self.writer.writerow([unicode(s).encode("utf-8") for s in row]) # Fetch UTF-8 output from the queue ... data = self.queue.getvalue() data = data.decode("utf-8") # ... and reencode it into the target encoding data = self.encoder.encode(data) # write to the target stream self.stream.write(data) # empty queue self.queue.truncate(0) def writerows(self, rows): for row in rows: self.writerow(row) conn = sqlite3.connect('yourdb.sqlite') c = conn.cursor() c.execute('select * from yourtable') writer = UnicodeWriter(open("export.csv", "wb")) writer.writerows(c) 

¡Espero que esto ayude!

Editar: Si desea encabezados en el CSV, la forma rápida es agregar manualmente otra fila antes de escribir los datos de la base de datos, por ejemplo:

 # Select whichever rows you want in whatever order you like c.execute('select id, forename, surname, email from contacts') writer = UnicodeWriter(open("export.csv", "wb")) # Make sure the list of column headers you pass in are in the same order as your SELECT writer.writerow(["ID", "Forename", "Surname", "Email"]) writer.writerows(c) 

Edición 2: Para generar columnas separadas por tuberías, registre un dialecto CSV personalizado y páselo al escritor, de esta manera:

 csv.register_dialect('pipeseparated', delimiter = '|') writer = UnicodeWriter(open("export.csv", "wb"), dialect='pipeseparated') 

Aquí hay una lista de los diversos parámetros de formato que puede usar con un dialecto personalizado.

Sí. Lea aquí sqlitebrowser

  • Importar y exportar registros como texto.
  • Importar y exportar tablas desde / a archivos CSV
  • Importar y exportar bases de datos desde / a archivos de volcado de SQL

Progtwigs externos: consulte la documentación de sqlite3 para obtener más información. Puedes hacerlo desde la línea de comandos / shell.

Sobre la marcha: el módulo csv le ayudará a manejar el formato de archivo CSV correctamente