import csv import sqlite3 class Import: def __init__(self, pfad_datenbank): self.pfad_datenbank = pfad_datenbank pass def string_to_float(self, zahl): zahl = zahl.replace(',', '.') return float(zahl) def import_koordinaten_lh_tachymeter(self, pfad_datei): liste_punktnummern = [] liste_punktnummern_vorher = [] liste_punktnummern_vorher_db = [] Import_abbrechen = False with open (pfad_datei, newline='', encoding='utf-8') as csvfile: con = sqlite3.connect(self.pfad_datenbank) cursor = con.cursor() liste_punktnummern_db = [r[0] for r in cursor.execute("SELECT DISTINCT punktnummer FROM Netzpunkte").fetchall()] cursor.close() con.close() r = csv.reader(csvfile, delimiter=';') for row in r: liste_punktnummern.append(row[0]) if row[0] in liste_punktnummern_vorher: Import_abbrechen = True print(f"Der Import wurde abgebrochen, weil in der Datei {pfad_datei} Punktnummern doppelt vorhanden sind. Bitte in der Datei ändern und Import wiederholen.") break liste_punktnummern_vorher.append(row[0]) if row[0] in liste_punktnummern_db: Import_abbrechen = True print(f"Der Import wurde abgebrochen, weil mindestens ein Teil der Punktnummern aus der Datei {pfad_datei} bereits in der Datenbank vorhanden ist. Bitte in der Datei ändern und Import wiederholen.") break liste_punktnummern_vorher_db.append(row[0]) if Import_abbrechen == False: con = sqlite3.connect(self.pfad_datenbank) cursor = con.cursor() with open(pfad_datei, newline='', encoding='utf-8') as csvfile: r = csv.reader(csvfile, delimiter=';') for row in r: cursor.execute( "INSERT INTO Netzpunkte (punktnummer, naeherungx_lh, naeherungy_lh, naeherungz_lh) VALUES (?, ?, ?, ?)", (row[0], self.string_to_float(row[1]), self.string_to_float(row[2]), self.string_to_float(row[3]))) con.commit() cursor.close() con.close() print("Der Import der Näherungskoordinaten wurde erfolgreich abgeschlossen")