Seite 1 von 1

Wort in Textdatei finden

Verfasst: Freitag 29. April 2016, 10:46
von lordzwieback
Hallo,

ich würde gerne in einer Textdatei nach einem Wort suchen. Kann mir jemand einen Hinweis geben, wie ich an dieses Problem herangehen kann ?

Gruß,
lordzwieback

Re: Wort in Textdatei finden

Verfasst: Freitag 29. April 2016, 11:01
von Sirius3
@lordzwieback: ein Grundlagentutorial durcharbeiten und mit Code + einer konkreten Frage wiederkommen.

Re: Wort in Textdatei finden

Verfasst: Freitag 29. April 2016, 11:09
von lordzwieback
Sirius3 hat geschrieben:@lordzwieback: ein Grundlagentutorial durcharbeiten und mit Code + einer konkreten Frage wiederkommen.
Grundlagentutorial habe ich bereits durchgearbeitet. Und die Frage ist doch konkret gestellt.

Prinzipiell geht es darum, eine Textdatei nach einem bestimmten Wort zu durchsuchen. Wird dieses Wort gefunden, soll Aktion X ausgelöst werden, ansonsten Y.

Code diesbezüglich gibts bei mir nur Wirr Warr, dass ich danach gleich wieder gelöscht habe, da es nicht funktioniert hat. 1x mittels Listen getestet, einmal mit for Schleifen, die die Zeilen eingelesen haben. Hat aber leider nichts funktioniert.

Dateioperationen sind mir geläufig, falls das die Anspielung auf das Tutorial war.

Re: Wort in Textdatei finden

Verfasst: Freitag 29. April 2016, 11:30
von jerch
@lordzwieback:

Na wenn Du weisst, wie Du an die Zeilen kommst, fehlt ja nur noch die Stringprüfung, als Anregung:

Code: Alles auswählen

In [1]: s = 'Hier kommt die Maus!'

In [2]: 'Maus' in s
Out[2]: True

In [3]: 'Katze' in s
Out[3]: False

Re: Wort in Textdatei finden

Verfasst: Freitag 29. April 2016, 12:00
von lordzwieback
jerch hat geschrieben:@lordzwieback:

Na wenn Du weisst, wie Du an die Zeilen kommst, fehlt ja nur noch die Stringprüfung, als Anregung:

Code: Alles auswählen

In [1]: s = 'Hier kommt die Maus!'

In [2]: 'Maus' in s
Out[2]: True

In [3]: 'Katze' in s
Out[3]: False
An die Zeilen komme ich momentan so:

Code: Alles auswählen

textfile = open(r"C:\temp\test.txt", "r")
    lines = textfile.readlines()
    for line in lines:
        # mach irgendwas
      
Und danke für den Hinweis, glaube, damit kann ich was anfangen. Wenn ich etwas neues weiß, wirds gepostet.

Re: Wort in Textdatei finden

Verfasst: Freitag 29. April 2016, 12:20
von lordzwieback
Habe es nun anderst gelöst:

Code: Alles auswählen

with open(r"C:\temp\test.txt", "r") as f:
        content = f.read()
        if "Suchwort" in content:
        	# Tu etwas
        
Solange das File nicht zu groß ist, wird es mir hier keine Probleme machen soweit ich das in Erfahrung bringen konnte. Da ich weiß, dass das File jeden Tag neu generiert werden wird, finde ich das jetzt nicht so wild. Was meint ihr zu der Lösung ? Unabgebracht ? Unsauber ? Doch ganz ok ?

Danke für eure Rückmeldung bzw. Hilfe.

Re: Wort in Textdatei finden

Verfasst: Freitag 29. April 2016, 12:53
von jerch
@lordzwieback:
Ob das so passt und immer Dateigröße << RAM gilt, muss Du wissen. Ich würde die Sache eher zeilenweise verarbeiten:

Code: Alles auswählen

with open(...) as f:
    for line in f:
        if 'abc' in line:
            # usw.

Re: Wort in Textdatei finden

Verfasst: Freitag 29. April 2016, 13:10
von Sirius3
@jerch: das Äquivalent zu irgendwo in der Datei wäre beim zeilenweisen Verarbeiten:

Code: Alles auswählen

with open(...) as f:
    if any('abc' in line for line in f):
        # usw.