in einer großen Textdatei mit TAB getrennten Spalten, möchte ich bei bestimmten Datensätze, die Textspalte am Anfang mit einem String zu vergleichen. Dazu gehören alle Datensätze, bei der der Herstellername 'LIEFERANT' lautet.
Beispiel:
- 028 028934 PAPER MATE KUGELSCHREIBER S0190393 SW PAPER MATE KUGELSCHREIBER S0190393 SW LIEFERANT S0190393 STÜCK 1 2 1,39 1,29 08008285096109 12 040 510 E LAGER 2012.04.05
- PAPER MATE KUGELSCHREIBER S0190393 SW
Beispiel:
- PAPERMATE PAPEMATE
PAPERMATE PAPEMATEPAPEMATE
PAPERMATE PAPERMATE
PAPERMATE PAPER MATE
PAPERMATE PAPER:MATE
PAPERMATE PAPER*MATE
PAPERMATE SHARPIE
Hier poste ich mal mein Konstrukt:
Code: Alles auswählen
herstellervergleich = {}
with codecs.open(liste_hersteller_leerzeichen_path, "r") as infile:
reader = csv.reader(infile, delimiter="\t", quotechar="^")
for item in reader:
herstellervergleich[item[1]] = item[0]
with codecs.open(base_daten_path, "r") as infile:
reader = csv.reader(infile, delimiter="\t", quotechar="^")
datenvergleich = {}
for item in reader:
if item[4] == 'LIEFERANT':
for i in herstellerleer:
a = re.match('{} '.format(i), item[2])
if a != None:
b = herstellervergleich.get(i)
if b != '':
datenvergleich[item[0], item[1]] = b
break
with codecs.open(base_daten_path, "r") as infile:
reader = csv.reader(infile, delimiter="\t", quotechar="^")
datenneu = []
for item in reader:
zeile = (item[0], item[1])
if datenvergleich.get(zeile):
b = datenvergleich.get(zeile)
zeile = (item[0], item[1], item[2], item[3], b, item[5], item[6], item[7], item[8], item[9], item[10], item[11], item[12], item[13], item[14], item[15], item[16], item[17], item[18], item[19], item[20], item[21], item[22], item[23], item[24], item[25], item[26], item[27], item[28], item[29], item[30], item[31])
datenneu.append(zeile)
else:
zeile = (item[0], item[1], item[2], item[3], item[4], item[5], item[6], item[7], item[8], item[9], item[10], item[11], item[12], item[13], item[14], item[15], item[16], item[17], item[18], item[19], item[20], item[21], item[22], item[23], item[24], item[25], item[26], item[27], item[28], item[29], item[30], item[31])
datenneu.append(zeile)
daten = sorted(set(datenneu))
write_csv(base_daten_path, daten)
Grüße Nobuddy