Python programm zu csv dateien funktioniert nicht?
Ich habe Code für ein python programm welches von 2 csv files pfade als input fragt, und diese dann prüft auf die ersten 2 spalten jeder reihe ob die 2 übereinstimmen. wenn dies so ist, soll die ganze spalte welche übereinstimmt von csv2 auf csv1 kopiert werden, das aber nur für die spalte die einstimmt
import os
import csv
def get_file_path(prompt):
while True:
file_path = input(prompt)
if os.path.isfile(file_path):
return file_path
else:
print("Fehler: Die angegebene Datei existiert nicht. Bitte geben Sie einen gültigen Pfad ein.")
def compare_csv_files():
file1_path = get_file_path("Geben Sie den Pfad zur ersten CSV-Datei ein: ")
file2_path = get_file_path("Geben Sie den Pfad zur zweiten CSV-Datei ein: ")
with open(file1_path, newline='') as file1, open(file2_path, newline='') as file2:
reader1 = csv.reader(file1)
reader2 = csv.reader(file2)
header1 = next(reader1)
header2 = next(reader2)
if header1[:2] != header2[:2]:
print("Fehler: Die ersten beiden Spalten der CSV-Dateien stimmen nicht überein.")
return
rows1 = [row for row in reader1]
rows2 = [row for row in reader2]
output_rows = []
for row1 in rows1:
for row2 in rows2:
if row1[:2] == row2[:2]:
output_rows.append(row2)
break
if len(output_rows) == 0:
print("Es wurden keine übereinstimmenden Zeilen gefunden.")
return
output_path = input("Geben Sie den Pfad zur Ausgabedatei ein: ")
with open(output_path, 'w', newline='') as output_file:
writer = csv.writer(output_file)
writer.writerow(header1)
for row in output_rows:
writer.writerow(row)
input("Drücken Sie die Eingabetaste, um das Programm zu beenden.")
Dieser Code fragt nach den Pfaden zu den beiden CSV-Dateien und prüft, ob die Dateien existieren. Wenn eine Datei nicht gefunden wird, wird eine Fehlermeldung ausgegeben und der Benutzer wird auf
Programmiersprache,
Python,
Python 3