Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich in Python zuverlässig prüfen, ob eine Zeichenfolge in einer Textdatei vorhanden ist?

Wie kann ich in Python zuverlässig prüfen, ob eine Zeichenfolge in einer Textdatei vorhanden ist?

Barbara Streisand
Barbara StreisandOriginal
2024-12-10 07:38:12258Durchsuche

How Can I Reliably Check for a String's Presence in a Text File in Python?

Suche nach Zeichenfolgen in Textdateien

Sie möchten das Vorhandensein einer bestimmten Zeichenfolge in einer Textdatei überprüfen und verschiedene Aktionen ausführen basierend auf dem Ergebnis. Trotz Ihrer Bemühungen gibt Ihr Code jedoch immer „True“ zurück, was Sie verwirrt. Dieser Leitfaden wird Ihnen helfen, das Problem zu lokalisieren und alternative Ansätze zur Erreichung Ihres Ziels bereitzustellen.

Der von Ihnen vorgestellte Originalcode hatte einen entscheidenden Fehler: Das Dateiobjekt konnte nicht geschlossen werden, was zu unerwartetem Verhalten führen konnte. Durch das Hinzufügen eines try/finally-Blocks mit ordnungsgemäßem Schließen der Datei wird der Code zuverlässig:

def check():
    try:
        datafile = open('example.txt')
        found = False
        for line in datafile:
            if 'blabla' in line:
                found = True
                break
    finally:
        datafile.close()

check()
if found:
    print("true")
else:
    print("false")

Erwägen Sie die Verwendung der with-Anweisung für eine präzise und sichere Möglichkeit zum Öffnen und Schließen von Dateien, da sie das Schließen von Dateien automatisch übernimmt:

with open('example.txt') as datafile:
    found = False
    for line in datafile:
        if 'blabla' in line:
            found = True
            break

if found:
    print("true")
else:
    print("false")

Wenn Ihre Textdatei mittelgroß ist, können Sie einen alternativen Ansatz verwenden, indem Sie die gesamte Datei in eine Zeichenfolge einlesen. Diese Methode ist oft schneller und einfacher als das Durchlaufen jeder Zeile:

with open('example.txt') as f:
    if 'blabla' in f.read():
        print("true")

Bei umfangreichen Textdateien können Sie mmap.mmap() verwenden, um eine dateigestützte Speicherzuordnung zu erstellen, sodass Sie diese nicht laden müssen gesamte Datei in den Speicher:

import mmap

with open('example.txt') as f:
    s = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
    if s.find('blabla') != -1:
        print('true')

Denken Sie daran, wenn Sie mmap mit Python 3 verwenden, die Teilsequenz für find() als Byte-Objekt behandeln (z. B. b'blabla'), um dem Verhalten von mmaps im Python-Interpreter zu entsprechen.

Das obige ist der detaillierte Inhalt vonWie kann ich in Python zuverlässig prüfen, ob eine Zeichenfolge in einer Textdatei vorhanden ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn