Wie lautet man gleichzeitig in zwei Dateien?

Ich habe zwei Dateien, und ich möchte eine lineare Operation über beide von ihnen durchführen. (Mit anderen Worten, die ersten Zeilen jeder Datei entsprechen, wie die zweite, etc.) Jetzt kann ich an eine Reihe von leicht umständlichen Möglichkeiten denken, über beide Dateien gleichzeitig zu iterieren; Aber das ist Python, also stelle ich mir vor, dass es irgendeine syntaktische Kurzschrift gibt.

Mit anderen Worten, gibt es einen einfachen Weg, um die anzupassen

for line in file: 

So dass es Daten aus beiden Dateien gleichzeitig zieht?

3 Solutions collect form web for “Wie lautet man gleichzeitig in zwei Dateien?”

Verwenden Sie itertools.izip , um die beiden Iteratoren zu verbinden.

 from itertools import izip for line_from_file_1, line_from_file_2 in izip(open(file_1), open(file_2)): 

Wenn die Dateien ungleich lang sind, verwenden Sie izip_longest .

Du könntest es versuchen

 for line1, line2 in zip(file1, file2): #do stuff 

Vorsichtig, diese Schleife wird beendet, wenn die kürzere Datei endet.

Bei der Verwendung von Python 2 ist itertools.izip besser für diese Art von Dingen, weil es keine list .

Ein komplettes Beispiel für die Nachwelt:

 from itertools import izip, izip_longest file1name = '/some/path/and/file' file2name = '/another/path/and/another/file' with open(file1name) as file1, open(file2name) as file2: for line1, line2 in izip(file1, file2): # or izip_longest # do something with the lines 

Die Verwendung with stellt sicher, dass die Dateien nach dem Gebrauch aufgeräumt werden, auch wenn eine Ausnahme auftritt.

  • Was ist der beste Weg, um das erste Element aus einer iterable passenden eine Bedingung zu bekommen?
  • Was bedeutet das "Ertrag" Keyword?
  • Sauberste Weg, um das letzte Item von Python Iterator zu bekommen
  • Überspringen einer Zeile beim Lesen einer Datei mit einer for-Schleife
  • Ändern eines Listen-Iterators in Python nicht erlaubt?
  • Erstellen Sie einen einfachen Python-Iterator
  • Wie zählt man nicht 0 Elemente in einem iterable?
  • Python-Äquivalent von Zip für Wörterbücher
  • Was ist die Perl-Version eines Python-Iterators?
  • Iteration über eine einzelne Liste parallel in Python
  • Kann mehrfache aufeinanderfolgende Generatoren liefern?
  • Python ist die beste Programmiersprache der Welt.