Moin,
Als Anfängerin habe Ich eine Frage:
Wie kann man 2 Dateien miteinander vergleichen und die Differenz (also nur die Strings, die unter in eine andere Datei schreiben?
Für Hilfe wäre Ich dankbar
/lg
sunnyi
2 Dateien vergleichen
Hallo,
ich bin auch
wie wäre mit dem
>>> result = list(d.compare(text1, text2))
Details findest du unter 4.4.4 Differ Example aus Python Library Reference
viel Glück
ich bin auch

wie wäre mit dem
>>> result = list(d.compare(text1, text2))
Details findest du unter 4.4.4 Differ Example aus Python Library Reference
viel Glück
Yep,
Soweit war Ich schon. Aber Ich muss zugeben, dass mir der Umstieg von PHP nach Python ein wenig schwer fällt.
Mir ist beispielsweise nicht klar, wie Ich das Differ Objekt benutze
/lg
sunnyi
Soweit war Ich schon. Aber Ich muss zugeben, dass mir der Umstieg von PHP nach Python ein wenig schwer fällt.
Mir ist beispielsweise nicht klar, wie Ich das Differ Objekt benutze
/lg
sunnyi
Ein ganz einfacher Vergleich zweier Dateien wäre beispielsweise folgendes:
Das berücksichtigt natürlich nicht den Fall, dass sich irgendwo in einer Deiner Dateien eine neue Zeile eingeschlichen hat. Wäre das der Fall, so würde natürlich natürlich alles ab der zusätzlichen Zeile unterschiedlich sein.
Code: Alles auswählen
inputFile1 = file("C:/file1.txt")
inputFile2 = file("C:/file2.txt")
outputFile = file("C:/file3.txt","w")
line1 = inputFile1.readline()
line2 = inputFile2.readline()
while line1 != "" or line2 != "":
if line1 != line2:
outputFile.write("Datei 1: "+line1)
outputFile.write("Datei 2: "+line2+"\n")
line1 = inputFile1.readline()
line2 = inputFile2.readline()
inputFile1.close()
inputFile2.close()
outputFile.close()
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Zum Differ Objekt gibt's ein Beispiel: http://www.python.org/doc/current/lib/d ... mples.htmlAnonymous hat geschrieben:Mir ist beispielsweise nicht klar, wie Ich das Differ Objekt benutze
Hier ein Beispiel von mir:
Code: Alles auswählen
import sys,difflib
def get_lines( filename ):
f = file( filename, "r" )
lines = f.readlines()
f.close
return lines
content1 = get_lines( r"c:\datei1.txt" )
content2 = get_lines( r"c:\datei2.txt" )
d = difflib.Differ()
sys.stdout.writelines( d.compare(content1, content2) )
der code hat noch ein viel größeres problem ... wenn nämlich die datei nur aus einer einzigen datei besteht (beispielsweise sind alle angaben durch ";" abgetrennt), dann wird schon beim kleinsten unterschied die komplette zeile ausgegeben und man ist wieder da, wo man angefangen hat.Anonymous hat geschrieben:Ein ganz einfacher Vergleich zweier Dateien wäre beispielsweise folgendes:
Das berücksichtigt natürlich nicht den Fall, dass sich irgendwo in einer Deiner Dateien eine neue Zeile eingeschlichen hat. Wäre das der Fall, so würde natürlich natürlich alles ab der zusätzlichen Zeile unterschiedlich sein.Code: Alles auswählen
inputFile1 = file("C:/file1.txt") inputFile2 = file("C:/file2.txt") outputFile = file("C:/file3.txt","w") line1 = inputFile1.readline() line2 = inputFile2.readline() while line1 != "" or line2 != "": if line1 != line2: outputFile.write("Datei 1: "+line1) outputFile.write("Datei 2: "+line2+"\n") line1 = inputFile1.readline() line2 = inputFile2.readline() inputFile1.close() inputFile2.close() outputFile.close()
--> daher wär es vielleicht sinnvoll für jede anwendung eines vergleichs eine problemspezifische ausgabe zu erstellen
mfg
die antwort kam gerade von mir, hatt nur vergessen mich einzuloggen, sry
*/Edit\*: hab grad gesehen, dass ich mich verschrieben hatte, hab das Wort "Datei" durch "Zeile" ersetzt, jetzt ergibts auch Sinn
*/Edit\*: hab grad gesehen, dass ich mich verschrieben hatte, hab das Wort "Datei" durch "Zeile" ersetzt, jetzt ergibts auch Sinn
Anonymous hat geschrieben:der code hat noch ein viel größeres problem ... wenn nämlich die datei nur aus einer einzigen zeile besteht (beispielsweise sind alle angaben durch ";" abgetrennt), dann wird schon beim kleinsten unterschied die komplette zeile ausgegeben und man ist wieder da, wo man angefangen hat.Anonymous hat geschrieben:Ein ganz einfacher Vergleich zweier Dateien wäre beispielsweise folgendes:
Das berücksichtigt natürlich nicht den Fall, dass sich irgendwo in einer Deiner Dateien eine neue Zeile eingeschlichen hat. Wäre das der Fall, so würde natürlich natürlich alles ab der zusätzlichen Zeile unterschiedlich sein.Code: Alles auswählen
inputFile1 = file("C:/file1.txt") inputFile2 = file("C:/file2.txt") outputFile = file("C:/file3.txt","w") line1 = inputFile1.readline() line2 = inputFile2.readline() while line1 != "" or line2 != "": if line1 != line2: outputFile.write("Datei 1: "+line1) outputFile.write("Datei 2: "+line2+"\n") line1 = inputFile1.readline() line2 = inputFile2.readline() inputFile1.close() inputFile2.close() outputFile.close()
--> daher wär es vielleicht sinnvoll für jede anwendung eines vergleichs eine problemspezifische ausgabe zu erstellen
mfg cime