Python CSV pour SQLite

Je suis la "conversion" d'une grande (~1,6 GO) fichier CSV et l'insertion des champs spécifiques de la CSV dans une base de données SQLite. Mon code ressemble à ceci:

import csv, sqlite3

conn = sqlite3.connect( "path/to/file.db" )
conn.text_factory = str  #bugger 8-bit bytestrings
cur = conn.cur()
cur.execute('CREATE TABLE IF NOT EXISTS mytable (field2 VARCHAR, field4 VARCHAR)')

reader = csv.reader(open(filecsv.txt, "rb"))
for field1, field2, field3, field4, field5 in reader:
  cur.execute('INSERT OR IGNORE INTO mytable (field2, field4) VALUES (?,?)', (field2, field4))

Tout fonctionne comme prévu pour à l'exception... IL en FAUT UNE QUANTITÉ INCROYABLE DE TEMPS POUR traiter. Suis-je le codage de manière incorrecte? Est-il une meilleure façon de parvenir à une meilleure performance et accomplir ce que je suis besoin (il suffit de les convertir quelques champs d'un fichier CSV dans SQLite table)?

**EDIT -- j'ai essayé directement de l'importation du fichier csv dans sqlite, comme l'a suggéré mais il s'avère que mon fichier a des virgules dans les champs (par exemple,"My title, comma"). C'est en créant des erreurs lors de l'importation. Il semble qu'il ya trop de ces événements pour modifier manuellement le fichier...

toutes les autres pensées??**

  • C'est un gros fichier. Combien de temps faut-il prendre?
  • Combien de doublons sont là? Si il y en a beaucoup, il serait probablement plus rapide pour garder un local set de dossiers qui ont déjà été inséré, et de passer l'appel à SQL entièrement pour les doublons.
  • Ici certains MySQL en vrac vitesse de chargement des conseils.
  • Quel système d'exploitation et la version de Python que vous utilisez?
  • "Il semble qu'il ya trop de ces événements pour modifier manuellement le fichier..". Nous allons réfléchir. Trop de modifier manuellement? Si seulement vous aviez un langage de programmation qui vous permettra d'écrire un programme pour reformater un fichier CSV dans un fichier délimité par des tabulations. Les idées de ce que la langue peut être utilisé pour écrire un programme comme celui-ci?
InformationsquelleAutor user735304 | 2011-05-09