Ich versuche, den Inhalt einer Datei mit dem Inhalt eines anderen unterteilen. Datei1 enthält einen einzigen Wert pro Zeile:Subset Inhalt einer Datei basierend auf Inhalt eines anderen
43
44
101
File2 enthält zwei Werte pro Zeile, sind Werte, die durch ein Leerzeichen getrennt:
43 48
43 54
44 12
88 55
101 31
101 56
101 61
Ich möchte den Inhalt File2 filtern basierend auf den Inhalten Wenn der erste Wert in einer beliebigen Zeile von Datei2 mit einem Wert in Datei1 übereinstimmt, wird die Zeile aus Datei2 in eine neue Datei gedruckt. Einige Zeilen in Datei2 sollten nicht in der neuen Datei enthalten sein (Wert existiert nicht in Datei1), und einige Werte aus Datei1 haben mehrere Einträge in Datei2. Die Ausgabe sollte so aussehen:
43 48
43 54
44 12
101 31
101 56
101 61
Ich habe versucht, den Code für diese Aufgabe in Python zu arbeiten. Ich bin relativ neu in dieser Sprache, aber hier ist etwas, was ich versucht habe, so weit:
output=open("new_file.txt","a")
for i in file2:
key="%s" % (i.split()[0])
if key in file1:
output.write(i)
Irgendwelche Tipps, wie dieser Code funktionsfähig zu machen? Vielen Dank!
Hinweis: zuerst Datei1 laden und die Daten in eine O (1) Suche (wahrscheinlich gesetzt oder Wörterbuch), dann für jede Zeile in Datei2, (1) teilen Sie die Zeile auf dem Raum, (2) prüfen, ob der erste Teil ist in Ihrem Set/Dictionary, (3) wenn ja, schreiben Sie in die Ausgabedatei. –