Hallo, folgendes Problem: Ich habe verschiedene . CSV dateien, die alle gleich aufgebaut sind aber verschiedene Anzahl von Zeilen haben:
Datei1.csv:
ABABCDEQWERT00038,204339000001456,20180130211930,0,4
ABABCDEQWERT00038,204339000001456,20180131103422,0,4
ABABCDEQWERT00038,204339000001456,20180131032004,0,4
ABABCDEQWERT00038,204339000001456,20180131052015,844,4
ABABCDEQWERT00038,204339000001456,20180131113428,0,4
ABABCDEQWERT00038,204339000001456,20180131073407,0,4
ABABCDEQWERT00038,204339000001456,20180130181908,0,4
ABABCDEQWERT00038,204339000001456,20180130151848,0,4
Diese Datei1.csv will ich einlesen und daraus SQL inserts machen in der form:
insert into table1 values('ABABCDEQWERT00038',204339000001456,20180131052015,844,4);
Das Ergenis soll sein Datei1.sql mit den gesammten insert statements.
Das heisst für 100 .csv Dateien gibt es 100 SQL Dateien, die dann in die Oracle DB einlesen kann.
Mit dem code kann ich schonmla die .csv datei einlesen:
>>> import csv
>>> with open('ABABCDEQWERT00038.csv', newline='') as csvfile:
... CDreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
... for row in CDreader:
... print(', '.join(row))
aber wie erzeuge ich jetzt den sql code ?
.csv dateien einlesen, SQL insert statement erzeugen als Datei.sql
@dark_universe: warum willst Du überhaupt SQL-Dateien generieren? Warum nicht gleich mit Python die Datenbank füllen? Dann übernimmt der DB-Treiber gleich das komplizierte escapen der Eingaben.
Wenn Du doch Text-Dateien erzeugen willst, hast Du schon von Stringformatierung gehört?
Bei einem INSERT sollten immer die Felder explizit angegeben werden.
Wenn Du doch Text-Dateien erzeugen willst, hast Du schon von Stringformatierung gehört?
Bei einem INSERT sollten immer die Felder explizit angegeben werden.