Seite 1 von 1

Dateien vergleichen

Verfasst: Freitag 14. März 2003, 11:01
von melmac
Hallo,

ich habe zwei Verzeichnisse (Verzeichnis 1: "vorher" und Verzeichnis 2: "nachher") Die Unterverzeichnisse und Dateien lauten in beiden Verzeichnissen gleich.

Ich würde jetzt gerne alle Dateien in Vorher mit den korrespondierenden dateien in nachher vergleichen und die Unterschiede in den verzeichnissen in eine datei ausgeben. mit filecmp bzw. dircmp bekomme ich aber nur angeziegt, ob sich die Dateien unterscheiden - aber nicht in welchen Zeielen und wie)
Wie kann ich das in Python lösen?

Danke
Martin (melmac)

Verfasst: Freitag 14. März 2003, 13:25
von Milan
Am Besten rekursiv mit os.path.walk und dann jede datei einzeln vergleichen. Nen anderer Weg fällt mir nicht ein. os.path.walk erwartet das startverzeichnis, eine Funktion die in jedem verz gerufen wird und ein Argument, dass der Funktion jedes Mal übergeben werden soll. Die Funtion selbst erhält auch noch das Verzeichniss, in dem sie gerade gerufen wird und eine Dateiliste, die sich in dem verz. befindet. Beispiel:

Code: Alles auswählen

import os
def call(arg, dir, files):
    print "Im Verzeichniss %s sind diese Dateien %s" %(dir,reduce(lambda x,y:"%s, %s"%(x,y),files,""))
    print "Als Argument wurde",arg,"übergeben."

os.path.walk("c:/",call,"nix")

Re: Dateien vergleichen

Verfasst: Freitag 14. März 2003, 13:41
von Voges
Hallo!
melmac hat geschrieben:mit filecmp bzw. dircmp bekomme ich aber nur angeziegt, ob sich die Dateien unterscheiden - aber nicht in welchen Zeielen und wie)
Wie kann ich das in Python lösen?
Seit Python Version 2.1 gibt es das Standard-Modul difflib. Ich habe selbst noch nicht mit gearbeitet, sollte aber genau das Richtige sein.
Jan