10 if __name__ == '__main__':
13 numArgs = len(sys.argv)
15 raise RuntimeError("usage: sv-merger EXPORT DELTA FIELD")
18 dh_export = open(sys.argv[1])
19 dh_delta = open(sys.argv[2])
20 dh_import = open("import.csv", "w")
22 # Lese die Kopfzeile aus EXPORT
23 line = dh_export.readline().rstrip()
24 print(line, file=dh_import)
25 export_header = line.split(";")
31 for kopf in export_header:
33 if kopf == 'Freifeldwert_1':
35 if kopf == sys.argv[3]:
39 if sv_pn_spalte == -1:
40 raise RuntimeError("S-Verein-Export enthält keine Partnernummer")
41 if sv_such_spalte == -1:
42 raise RuntimeError("S-Verein-Export enthält nicht das gewünschte Datenfeld "+sys.argv[3])
44 line = dh_delta.readline().rstrip()
45 delta_header = line.split(";")
51 for kopf in delta_header:
52 if kopf == "Partnernummer":
54 if kopf == sys.argv[3]:
59 raise RuntimeError("Delta-Datei enthält keine Partnernummer")
60 if delta_such_sp == -1:
61 raise RuntimeError("Delta-Datei enthält nicht das gewünschte Datenfeld")
65 if len(line.rstrip()):
67 data = line.split(";")
68 delta[int(data[delta_pn_sp])] = data[delta_such_sp]
70 for line in dh_export:
71 data = line.rstrip().split(";")
72 pn = data[sv_pn_spalte][1:-1]
77 if data[sv_such_spalte] != delta[pn]:
78 data[sv_such_spalte] = delta[pn]
79 print(";".join(data), file=dh_import)
88 EXPORT: Export-Datei aus S-Verein
90 DELTA: csv-Daten, die eingearbeitet werden sollen
92 FIELD: Feld, das eingearbeitet werden soll, wenn
93 - Das Quellfeld nicht leer ist
94 - Sich der Wert von der EXPORT-Datei unterscheidet
96 Die Synchronisation der Daten erfolgt anhand der Partnernummer.
98 Das Ergebnis wird stets in die Datei import.csv geschrieben.