CSV Datei in SQLite3 DB kopieren 4411 Das Programm soll Daten aus einer .CSV Datei lesen und diese in eine SQLite3 Datenbank schreiben. Als CSV Datei nutzen wir eine Datei mit allen deutschen Wörtern, die in Wikipedia vorkommen. Auf der Webseite Bri´s World von Torsten Brischalle kann diese .CSV Datei mit über 2 Millionen Zeilen heruntergeladen werden. Als Alternative gibt es noch eine Testdatei mit nur 100 Wörtern : 100_Woerter.csvHerunterladen 2Mio_Woerter.zipHerunterladen 1) Daten aus einer .CSV Datei auslesen Folgendes Programm liest alle Zeilen einer .CSV Datei aus und schreibt deren Inhalt mit der print-Funktion in die Konsole. Das Python-Programm muss im gleichen Ordner wie die .CSV Datei liegen. #Modul für die Arbeit mit .CSV Dateien laden import csv #öffnet die .CSV Datei a_file = open("100_Woerter.csv", encoding="utf8") #speichert den Inhalt der Datei in einem rows Object rows = csv.reader(a_file) #iteriert durch alle Zeilen des rows Object for row in rows: #gibt das erste Wort der Zeile zurück #als Standardtrenner wird nach "," gesucht print(row[0]) 2) SQLite Datenbank für die Wörter erstellen Die über zwei Millionen Wörter sollen in eine SQLite Datenbank kopiert werden. Eine SQLite Datenbank kann man am einfachsten mit dem von Benjamin Vötterle und mir erstellten Tool SQLverine erstellen. Dazu nutzt man das Autorenwerkzeug und erstellt eine neue Datenbank mit folgendem Aufbau: Create Befehl der Datenbank Die neu erstellte leere Datenbank kann dann heruntergeladen werden. 2Mio_Woerter.dbHerunterladen 3) Daten der .CSV Datei in die Datenbank kopieren Das ist nun unser finales Programm, welches die Daten aus der .CSV Datei ausliest und mit Hilfe des „sqlite3“ Moduls eine Verbindung zur Datenbank aufbaut und mit der executemany-Funktion die einzelnen Zeilen in die Datenbank schreibt: import sqlite3 import csv print("Start der Datenübertragung...") #Verbindung mit der Datenbank wird aufgebaut con = sqlite3.connect("2Mio_Woerter.db") #Cursor Object wird erstellt um Befehle ausführen zu können cur = con.cursor() #liest den Inhalt der CSV Datei und speichert diesen in einem rows Object a_file = open("2Mio_Woerter.csv", encoding="utf8") rows = csv.reader(a_file) #Der Cursor führt mehrere Befehle aus cur.executemany("INSERT INTO woerter (wort) VALUES (?)", rows) #speichert die Anpassungen con.commit() #schließt die Verbindung zur Datenbank con.close() print("Daten übertragen") Das Übertragen der über zwei Millionen Wörter dauert nur ca. 5 Sekunden. Die Datenbank hat im Anschluss eine Größe von ca. 53 Megabyte. 2Mio_Woerter_Datenbank.zipHerunterladen Links Python Modul: csv – CSV File Reading and WritingPython Modul: sqlite3 – DB-API 2.0 interface for SQLite databasesSQLverine unsere-schule.org × CSV Datei in SQLite3 DB kopieren Code: 4411 Infos: unsere-schule Codes