2016-09-22 5 views
0

Ich habe zwei Textdateien mit Daten zu überprüfen: file1:Vergleichen Sie zwei Textdateien Auftreten eines Teil

0 
1 
2 
0/0/0/2 
0/1/1/2 

und file2:

Lo0 
Lo1 
Te0/0/0/2 
Te0/0/1/4 
Te0/1/1/2 

I file1 und file2 solche vergleichen wollen Wenn i th Element der Datei1 in entsprechenden i th Element in Datei2 auftritt, geben Sie sie in einer separaten Datei, andernfalls überprüfen Sie das Auftreten von Datei1 im nächsten Element der Datei2. Grundsätzlich sollte hier die endgültige Ausgabe sein:

Lo0     #as 0 occurs here 
Lo1     #as 1 occurs here 
Te0/0/0/2   #as 0/0/0/2 occurs here 
Te0/1/1/2   #as 0/1/1/2 occurs here 

Bitte helfen Sie mir, fortzufahren! Ich habe versucht:

for i1 in range(len(file2)): 
    for i2 in range(len(file1)): 
     if file1[i2]==file2[i1]: 
      desc.write(file1[i2]) 
      desc.write(file2[i1+1]) 
      desc.write('\n') 

Grundsätzlich ich das nächste Element einer Datei schreiben möchten, die als Unter Inhalt hat file2 wenn file2 hat Strings in file1 sonst schreiben „NotSame“ entsprechen.

+0

Sind die Dateien garantiert gleich lang? – Hoopdady

+0

@Arashsoft, ich habe meine Testversion hinzugefügt. Bitte lass mich wissen wir es weiter geht! – alisha

Antwort

0

Ich habe nicht wirklich viel zu tun, aber wenn die Dateien die gleiche Länge haben, sollte dies funktionieren.

f1 = open('file1.txt').readlines() 
f2 = open('file2.txt').readlines() 
output = open('output.txt', 'w') 

for i in xrange(len(f1)): 
    if f1[i] in f2[i]: 
     output.write(f2[i]) 
+0

Die Dateien haben nicht die gleiche Länge – alisha

+0

Nun, wenn Datei2 im obigen Fall länger als Datei1 ist, sollte es immer noch funktionieren, wenn nicht, müssen Sie die Schleife auf 'für i in xrange (len (f2)): ' – Hoopdady

+0

Es funktioniert nicht, der Code wird abgebrochen, sobald ein unähnliches Element gefunden wird, in diesem Fall 0/0/1/4. – alisha

Verwandte Themen