Mit Python suchen und ersetzen in CSV Dateien
Nachdem wir bereits mit Excel und VBA Platzhalter in CSV Dateien gesucht und mit Inhalten ersetzt haben heute das ganze mit Python und OpenPyxl.
Ausgangspunkt ist eine Exceldatei „python_test.xlsx“ mit einer Named Range „Felder“ im Tabellenblatt „Tabelle2“.
Mit der openpyxl
Bibliothek laden wir das Excel-Blatt und holen uns die Inhalte der Range in ein Dictionary. Jeden der Keys aus dem Dictionary suchen wir dann in der CSV Datei und ersetzen ihn gegen den Wert aus der Excel-Datei.
# -*- coding: utf-8 -*- import openpyxl path = "python_test.xlsx" workbook = openpyxl.load_workbook(path) def get_sheet_and_location(workbook, named_range): x = list(workbook.defined_names['Felder'].destinations)[0] return x[0], x[1].replace('$','').split(':')[0],x[1].replace('$','').split(':')[1] sheet, start, stop = get_sheet_and_location(workbook,'Felder') worksheet = workbook[sheet] rng=worksheet[start:stop] replacements = {} for row in rng: c1, c2 = row replacements[c1.value] = c2.value with open('Python_test.txt') as input_file: text = input_file.read() for key in replacements: text = text.replace(key,str(replacements[key])) with open('Python_test_output.txt','w') as output_file: output_file.write(text) |