2016-07-23 3 views
0

Sorry für den verwirrenden Titel, aber im Grunde habe ich zwei Wortlisten-Dateien und ich möchte sie wie unten gezeigt ausdrucken.Wie geht es weiter zum nächsten Objekt in einer Wortliste nach der n-ten Schleife?

Eine Textdatei wird wie folgt formatiert:

1 
12 
123 

Und das andere ist wie folgt:

Test1 
Test2 
Test3 

Ich versuche, dies im Endergebnis zu erzielen (Druck it out) so die erste Datei erhöht sich um eins (nächstes Wort in der Liste) und das andere Wort erhöht sich um eins (nächstes Wort in der Liste) alle fünf Male

Test1:1 
Test2:1 
Test3:1 
Test4:1 
Test5:1 
Test6:12 
Test7:12 
Test8:12 
Test9:12 
Test10:12 
Test11:123 
Test12:123 
Test13:123 
Test14:123 
Test15:123 
Test16:1234 
Etc 
Etc 
Etc 
Etc 

Ich habe seit der letzten Stunde versucht, dies mit:

with open('file1.txt', 'r') as f: 
    for line in f: 
    for word in line.split(): 

Aber ohne Glück

Alles, was hilft :)

+1

Was ist die Logik der Ausgabe –

+0

Was nach 'Test45 passiert: 123456789', geht es hin' Test46: 123456789' mit einem ' 0 oder 10 am Ende? Auch wenn Sie nur diese Zeichenfolgen generieren, warum brauchen Sie zwei Textdateien? – metatoaster

+0

Ich versuche, ein Login für ein Projekt zu testen, bei der Arbeit am "Test" wäre das Konto und die "123 .." wären die Proxies, die ich benutze. – niro

Antwort

1

So etwas wie das? Öffnen Sie beide Dateien und für jede Zeile in der Datei ein Druck fünf in der Datei zwei:

with open('file1.txt', 'r') as f1: 
    with open('file2.txt', 'r') as f2: 
     for line1 in f1: 
      i = 0 
      for line2 in f2: 
       i += 1 
       print(line2.rstrip('\n') + ':' + line1.rstrip('\n')) 
       if i == 5: 
        break 

Test1:1 
Test2:1 
Test3:1 
Test4:1 
Test5:1 
Test6:12 
Test7:12 
Test8:12 
Test9:12 
Test10:12 
Test11:123 
Test12:123 
Test13:123 
Test14:123 
Test15:123 
+0

Für die innere Schleife würde ich 'für i, Zeile2 in f2' verwenden und' if i == 4: break' am Ende des Blocks (z. B. nach dem 'print') einfügen. Wie Sie es geschrieben haben, wird dieser Code mit einer 'StopIteration' Ausnahme beendet, wenn Sie das Ende von' f2' vor dem Ende von 'f1' erreichen. – Blckknght

+0

@Blckknght In der Tat. Wenn du 'für i, Zeile2 in f2 'sagst, meinst du etwas wie die aktualisierte Antwort? – Psidom

+0

Das ist perfekt danke! – niro

Verwandte Themen