[Python-de] 2 Dateien zusammenfuegen

Stefan Behnel behnel_ml at gkec.informatik.tu-darmstadt.de
Fre Dez 16 00:50:48 CET 2005



Daniela Reimer schrieb:
> Ich bin absoluter Python-Beginner. Habe zwei verschiedene Ordner mit
> Dateien (Ordner a mit Dateien a1, a2, a3... Und Ordner b mit Dateien b1,
> b2, b3...).
> Nun muss ich Datei a1 einlesen und Datei b1 als Spalte an a1 anhängen
> und diese nun in eine neue Datei rausschreiben.
> Waere klasse, wenn mir da jmd weiterhelfen koennte.
> Einlesen und ausschreiben mit readlines und writelines etc ist kein
> Problem fuer mich. Ich braeuchte nur einen Tipp, wie ich die zweite
> Datei sinnvoll als Spalte anhaenge und wie ich beide Schleifen sinnvoll
> ueber die beiden Ordner laufen lasse, damit auch wirklich a1 und b1 etc
> zusammenkommen.

Klingt nach einem Fall für sort(). Die Ordnerinhalte findest du als Liste über
das "os" Modul. Dann sortier die Namen, damit beide in die gleiche Reihenfolge
kommen.

Allerdings verstehe ich nicht ganz, das dabei eine "Spalte" ist. Möchtest du
die Zeilen nebeneinander schreiben? Sowas?

from itertools import izip
f1 = open(file1, 'r')
f2 = open(file2, 'r')
for line1, line2 in izip(f1, f2):
  print "%s,%s" % (line1[:-1],line2)

Gibt jeweils eine Zeile von Datei 1 und Datei2 nebeneinander aus, durch Komma
getrennt. Und das für alle Zeilen der Dateien - solange beide Zeilen
enthalten. Überzählige Zeilen einer einzelnen Datei werden weggeworfen.

Stefan