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)
Dateien vergleichen
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")
Hallo!
Jan
Seit Python Version 2.1 gibt es das Standard-Modul difflib. Ich habe selbst noch nicht mit gearbeitet, sollte aber genau das Richtige sein.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?
Jan