Seite 1 von 1

Comparing two files

Verfasst: Dienstag 11. Mai 2010, 10:34
von mzh
Hi all
Ich stehe immer wieder vor der Aufgabe, bestimmte Kolonnen in zwei Dateinen zu vergleichen. Bis jetzt habe ich das immer, m.A.n, reichlich unbeholfen erledigt:

Code: Alles auswählen

#!/usr/bin/env python

import os, sys 

file1 = open(sys.argv[1])
file2 = open(sys.argv[2])

data1 = file1.readlines()
data2 = file2.readlines()

for i in range(len(data1)): 
    if data1[i].split()[0] == data2[i].split()[0]:
        print data1[i].split()[0][0], '==', data2[i].split()[0][0]
    else:
        print i, "NOT THE SAME"                                                                                                                      
Was ich mich immer wieder gefragt habe, ich kann ja nicht über die Linien iterieren, ohne einen Index zu bemühen:

Code: Alles auswählen

for line in data1:
etc.
weil wie kann ich dann auf dieselbe Linie in data2 zugreifen, ich kenne ja die Liniennummer in der ich mich befinde nicht.

Vielen Dank für Hinweise

Re: Comparing to files

Verfasst: Dienstag 11. Mai 2010, 10:43
von .robert
Schnellschuss: vielleicht ist difflib etwas für dich?

Re: Comparing to files

Verfasst: Dienstag 11. Mai 2010, 10:49
von ms4py
Oder `izip` >> http://docs.python.org/library/itertool ... tools.izip

Damit kannst du über beide Dateien gleichzeitig iterieren.

Re: Comparing to files

Verfasst: Dienstag 11. Mai 2010, 11:42
von BlackJack
@mzh: In den Dateien sind *Zeilen* und keine "Linien". Das ist eine furchtbar falsche Übersetzung von "line" in diesem Kontext.

Re: Comparing to files

Verfasst: Dienstag 11. Mai 2010, 11:45
von Hyperion
Außerdem gehört das imho doch nicht hier rein. In letzter Zeit häufen sich solche Postings hier irgend wie, oder?
http://python-forum.de/viewtopic.php?f=11&t=22841

Das sind doch weniger Dinge, die man zeigen will, als vielmehr Fragen, wie etwas umzusetzen ist. Also imho alles Threads für die Allgemeinen Fragen.

Re: Comparing to files

Verfasst: Dienstag 11. Mai 2010, 11:50
von mzh
Hyperion hat geschrieben:Außerdem gehört das imho doch nicht hier rein. In letzter Zeit häufen sich solche Postings hier irgend wie, oder?
http://python-forum.de/viewtopic.php?f=11&t=22841

Das sind doch weniger Dinge, die man zeigen will, als vielmehr Fragen, wie etwas umzusetzen ist. Also imho alles Threads für die Allgemeinen Fragen.
kein problem für mich

Re: Comparing to files

Verfasst: Dienstag 18. Mai 2010, 14:54
von mkesper
ms4py hat geschrieben:Oder `izip` >> http://docs.python.org/library/itertool ... tools.izip

Damit kannst du über beide Dateien gleichzeitig iterieren.
Vermutlich will man aber izip_longest: http://docs.python.org/library/itertool ... ip_longest