Wort in Textdatei finden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
lordzwieback
User
Beiträge: 55
Registriert: Montag 2. März 2015, 14:35
Kontaktdaten:

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
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

@lordzwieback: ein Grundlagentutorial durcharbeiten und mit Code + einer konkreten Frage wiederkommen.
lordzwieback
User
Beiträge: 55
Registriert: Montag 2. März 2015, 14:35
Kontaktdaten:

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.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

@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
lordzwieback
User
Beiträge: 55
Registriert: Montag 2. März 2015, 14:35
Kontaktdaten:

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.
lordzwieback
User
Beiträge: 55
Registriert: Montag 2. März 2015, 14:35
Kontaktdaten:

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.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

@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.
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

@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.
Antworten