Hey, ich schreibe ein Programm, das durchsucht werden soll .log-Dateien und finde ein Stichwort "Complete Respons". Alle gefundenen Schlüsselwörter sollten später geschrieben und in einer neuen .txt-Datei gespeichert werden. Ich habe jetzt das Programm verwaltet, um ein Dokument zu der Zeit zu durchsuchen, aber ich habe +50 Dokumente des gleichen Typs in einem Verzeichnis, das ich gleichzeitig durchsuchen und alle gefundenen Schlüsselwort in demselben .txt Dokument setzen möchte . Ich könnte wirklich Hilfe gebrauchen ...! DankPython - Stichwortsuchprogramm
def read_log_file(filename, keyword): #file
saved_word = [] # Array
# read file
with open(filename) as file_search: #open search file
file_search = file_search.readlines() #read file
for lines in file_search: # every word is scaned
if keyword in lines: # extract the keyword
saved_word.append(lines) #store all found keywords in array
# write in new file
with open('CompleteResponse.txt', 'w') as file_handler:
file_handler.write(f"{filename}\n")
for i in range(len(saved_word)):
file_handler.write(f"{saved_word[i]}")
print('done') # completed
print(len(saved_word)) # count found words
read_log_file(r'C:\Users\\Documents\read_log_files\test.log', 'Complete Response:')
Bitte Detail die Frage: Haben Sie Probleme? Ausnahmen? – pinturic
@fili: Die Antwort von @Shai wird dich dorthin bringen. Nur ein paar Kommentare zu deinem Code: 'for lines in file_search' - warum der Plural? tun 'für Zeile in file_search', auch nicht in der Gewohnheit von' file_search = file_search.readlines() ', da dies den Typ von' file_search' ändert und zu kleinen Fehlern führen kann. Schließlich sind 'file_search' und' file_handler' seltsame Namen. Und wenn die Protokolldateien groß werden, möchten Sie möglicherweise vermeiden, sie alle in einem Array zu lesen und nur Zeile für Zeile zu verarbeiten. –