2017-02-24 1 views
0

Ich möchte die Ergebnisse in meiner Konsole aus der Schleife unten in eine Textdatei drucken. Ich habe in der Schleife diesen Code versucht, setze wie im Beispiel zu sehen:Druckergebnisse in Textdatei

 f = open('out.txt', 'w',) 
     sys.stdout = f 

jedoch, wenn dies in der Schleife ist nur ich einen Satz von Ergebnissen erhält anstelle der vollständigen erwartet.

wordlist = input("What is your word list called?") 
f = open(wordlist) 
l = set(w.strip().lower() for w in f) 
chatlog = input("What is your chat log called?") 
with open(chatlog) as f: 
    found = False 
    for line in f: 
     line = line.lower() 
     if any(w in line for w in l): 
      print (l) 
      print(line) 
      found = True 
      f = open('out.txt', 'w',) 
      sys.stdout = f 
    if not found: 
     print("not here") 

Antwort

0

Sie sollten write() Funktion verwenden, um Ihr Ergebnis in die Datei zu schreiben.

sollte-Code sein, etwas wie:

wordlist = input("What is your word list called?") 
f = open(wordlist) 
l = set(w.strip().lower() for w in f) 
chatlog = input("What is your chat log called?") 

with open(chatlog) as f: 
    found = False 
    file = open("out.txt", "w") 
    for line in f: 
     line = line.lower() 
     if any(w in line for w in l): 
      found = True 
      file.write(line) 
    if not found: 
     print("not here") 
0

sollten Sie sicherstellen, dass Sie die ‚out.txt‘ öffnen für außerhalb der Schleife zu schreiben, nicht innerhalb der Schleife

0

Das Problem ist, jede Iteration öffnen Sie es mit Schreibmodus Aufgrund python documentation:

'w' für das Schreiben (Kürzen Sie die Datei, wenn es existiert bereits)

für Ihre Zwecke sollten Sie "a" mode (append) oder Datei öffnen ou t des Zyklus