Nach einer Zeichenfolge in Textdateien suchen
Bei dem Versuch, das Vorhandensein einer bestimmten Zeichenfolge in einer Textdatei festzustellen, kann ein Programm auf unerwartetes Verhalten stoßen. Um dieses Problem zu beheben, ist es wichtig, den Grund für die falschen Ergebnisse zu verstehen.
Originalcode:
def check(): datafile = file('example.txt') found = False for line in datafile: if blabla in line: found = True break check() if True: print "true" else: print "false"
Grund für falsche Ergebnisse:
Der bereitgestellte Code gibt unabhängig vom Vorhandensein der Zeichenfolge in der Datei aufgrund der Auswertung von „wenn wahr“ im folgenden Block stets „True“ zurück ist nicht an die Logik der vorhergehenden Schleife gebunden.
if True: print "true" else: print "false"
Python mit Open:
Ein alternativer Ansatz zum Lesen einer Textdatei ist die Verwendung des 'with '-Anweisung in Verbindung mit der Funktion 'open()'. Diese Methode erstellt ein „dateiähnliches“ Objekt, das das Schließen von Dateien automatisch übernimmt.
with open('example.txt') as f: if 'blabla' in f.read(): print("true")
Speicherzuordnung verwenden:
Eine weitere Technik zum Arbeiten mit Textdateien ist der Speicher Abbildung. Dieser Ansatz liest die gesamte Datei als zeichenfolgenartiges Objekt in den Speicher ein, was einen schnelleren Zugriff und die Möglichkeit der Verwendung regulärer Ausdrücke ermöglicht.
import mmap with open('example.txt', 'rb', 0) as file, \ mmap.mmap(file.fileno(), 0, access=mmap.ACCESS_READ) as s: if s.find(b'blabla') != -1: print('true')
Wenn Sie diese Vorschläge befolgen, können Sie genau nach Zeichenfolgen in Textdateien suchen und die erwarteten Ergebnisse erzielen.
Das obige ist der detaillierte Inhalt vonWarum gibt meine String-Suche in Python-Textdateien immer „True' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!