Lenteur dans l'importation d'un fichier csv
Bonjour,
Je suis entrain d'écrire une fonction d'importation d'un fichier sous format csv dans une table SQlite3 par le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
with open(fichier_source_csv, 'r', encoding='utf-8-sig', errors='ignore') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=';')
next(csv_reader)
nbre_ligne = 0
while csv_file.readline(): # Calcul du nombre total de lignes dans le fichier
nbre_ligne += 1
requete = QSqlQuery()
requete.prepare('''DELETE FROM table_clients''') # Vidage de la table
requete.exec_()
with open(fichier_source_csv, 'r', encoding='utf-8-sig', errors='ignore') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=';')
next(csv_reader)
nbre_lignes_encours= 1
while nb_lignes > nbre_lignes_encours:
for row in csv_reader:
id_client = row[0]
nom_client = row[1]
adresse_client = row[2]
requete = QSqlQuery()
requete.prepare('''INSERT INTO table(id_client, nom_client, adresse_client)
VALUES(:id_client, :nom_client, :adresse_client)''')
requete.bindValue(":id_client", id_client)
requete.bindValue(":nom_client", nom_client)
requete.bindValue(":adresse_client", adresse_client)
requete.exec_()
self.ui.lineEdit_nbre.setText(str(nb_lignes))
self.ui.lineEdit_nbre_encours.setText(str(nbre_lignes_encours))
QtCore.QCoreApplication.processEvents()
nbre_lignes_encours = nbre_lignes_encours + 1 # Affichage de l'incrémentation de l'importation des données |
Jusqu'à la tout marche, seulement c'est trop lent. Pour 1000 enregistrements ça prend plusieurs minutes. Même en supprimant l'affichage de l'incrémentation le problème demeure toujours.
Y a t'il une autre solution plus rapide.
Merci :calim2: