Heim > Backend-Entwicklung > Python-Tutorial > Warum gibt meine String-Suche in Python-Textdateien immer „True' zurück?

Warum gibt meine String-Suche in Python-Textdateien immer „True' zurück?

Linda Hamilton
Freigeben: 2024-12-04 07:03:09
Original
303 Leute haben es durchsucht

Why Does My String Search in Python Text Files Always Return True?

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"
Nach dem Login kopieren

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"
Nach dem Login kopieren

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")
Nach dem Login kopieren

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')
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage