2016-04-27 20 views
1

Für meinen Code unten wollte ich ganze Sätze ausdrucken, in denen bestimmte Wörter aus meinen Wortlisten erscheinen, sowie es die Wortzählung unter jedem spezifischen Wort in a ausdrucken würde. TXT-Datei. Ich habe das erfolgreich im Terminal erreicht, aber ich habe wirklich Mühe, es in eine .txt zu bekommen. Im Moment kann ich es nur scheinen, um die Wortzählung in der .txt auszudrucken, aber die Sätze drucken immer noch zum Terminal, weiß jemand, wo ich vielleicht falsch liege? Entschuldigung für mein mangelndes Wissen Anfänger Python zu lernen. DankWie drucke ich eine .txt aus

import re, os 

pathWordLists = "E:\\Python\WordLists" 

searchfilesLists = os.listdir(pathWordLists) 

pathWordbooks = "E:\\Python\Books" 

searchfilesbooks = os.listdir(pathWordBooks) 

lush = open("WorkWork.txt", "w") 


def searchDocs(word): 

    for document in searchfilesbooks: 
     file = os.path.join(pathWordbooks, document) 
     text = open(file, "r") 
     hit_count = 0 
     for line in text: 
      if re.findall(word, line): 
       hit_count = hit_count +1 
       print(document + " |" + line, end="") 
     print(document + " => " + word + "=> "+ str(hit_count), file=lush) 
     text.close() 
    lush.flush() 
    return 

def searchWord(): 

    for document in searchfilesLists: 
     file = os.path.join(pathWordLists, document) 
     text = open(file, "r") 
     for line in text: 
      #print(line) 
      searchDocs(line.strip()) 
     text.close() 
    print("Finish") 

searchWord() 

Antwort

1

Falls Sie drucken Sätze mit print(document + " |" + line, end="") vergessen Sie den file Parameter. Hinzufügen sollte das Problem beheben:

+0

Ich habe es sowohl Druck hinzugefügt (document + "|" + Linie, end = "", file = üppig) und print (Dokument + "=> "+ word +" => "+ str (hit_count), file = üppig) Es druckt nun beide perfekt in die .txt, aber aus irgendeinem Grund heißt es 'New Text Document.txt =>' ist da sowieso zu bekommen darum herum. Vielen Dank für die Hilfe – Gurnsie

+0

Für die Beantwortung, dass ich den Inhalt der Verzeichnisse, die Sie scannen und die erwartete Ausgabe benötigen würde. – niemmi

0

Versuchen Sie, das Ergebnis in einer Variablen zu speichern und dann die Variable in die Datei schreiben. Etwas wie folgt aus:

def searchDocs(word): 
    results = [] 
    for document in searchfilesbooks: 
     file = os.path.join(pathWordbooks, document) 
     with open(file, "r") as text: 
      lines = text.readlines() 

     hit_count = 0 
     for line in lines: 
      if re.findall(word, line): 
       hit_count += 1 
       results.append(document + " |" + line) 
     results.append(document + " => " + word + "=> "+ str(hit_count)) 

    with open("WorkWork.txt", "w") as f: 
     f.write('\n'.join(results)) 
Verwandte Themen