Ein Stück bin ich weiter gekommen, dass anlegen einer neuen Tabelle läuft nun durch.
Jetzt komme ich aber beim füllen der Tabelle kein Stück weiter.
Code: Alles auswählen
# -*- coding: utf-8 -*-
import csv
import sqlite3
dateiname = "aaa.txt"
def ueberschrift_name(dateiname):
with open(dateiname, "r", encoding="utf-8") as input:
entry_address = csv.reader(input, delimiter="\t")
ueberschrift = next(entry_address)
return ueberschrift
def ueberschrift_import(dateiname):
t_name = dateiname.split(".")
t_name_split = t_name[0]
print(t_name)
ueberschrift = ueberschrift_name(dateiname)
return "CREATE TABLE " + t_name_split + "({})".format(", ".join(map("{} TEXT".format, ueberschrift)))
def tabelle_erstellen():
conn = sqlite3.connect('1_Datenbank.db')
zeiger = conn.cursor()
tabelle_import = ueberschrift_import(dateiname)
print(tabelle_import)
zeiger.execute(tabelle_import)
conn.commit()
conn.close()
def daten_import(dateiname):
conn = sqlite3.connect('1_Datenbank.db')
zeiger = conn.cursor()
with open(dateiname, "r", encoding="utf-8") as input:
entry_address = csv.reader(input, delimiter="\t")
ueberschrift = next(entry_address)
ueberschrift_l = len(ueberschrift)
ueberschrift = list("?" * ueberschrift_l)
t_name = dateiname.split(".")
t_name_split = t_name[0]
insert_string = "INSERT INTO " + t_name_split + " VALUES ""({})".format(",".join(map("{}".format, ueberschrift))) + ", daten"
for zeile in entry_address:
daten = [tuple(zeile)]
zeiger.executemany(insert_string)
conn.commit()
conn.close()
tabelle_erstellen()
daten_import(dateiname)
Im Endeffekt ein ähnliches Problem wie beim erstellen der Tabellen. Gebe ich einen String weiter kommt ein Fehler, wird der String manuell eingegeben
wird die Tabelle gefüllt.
Der Fehler lautet:
TypeError: function takes exactly 2 arguments (1 given)
Vielen Dank Euch!