Python Zeichenkette in Datei suchen

Syed Moiz Haider 26 Dezember 2020
  1. Verwenden Sie die Methode File readlines(), um eine Zeichenkette in einer Datei in Python zu finden
  2. Verwenden der Methode file read() zum Suchen einer Zeichenkette in einer Datei in Python
  3. Verwenden der Methode find zum Suchen einer Zeichenkette in einer Datei in Python
  4. Verwenden des Moduls mmap zum Suchen einer Zeichenkette in einer Datei in Python
Python Zeichenkette in Datei suchen

Das Tutorial erklärt, wie man in Python eine bestimmte Zeichenkette in einer Textdatei sucht.

Verwenden Sie die Methode File readlines(), um eine Zeichenkette in einer Datei in Python zu finden

Die Python-Methode readlines() liefert den Inhalt der Datei, der durch die neue Zeile in eine Liste aufgeteilt wird. Wir können die for-Schleife verwenden, um durch die Liste zu iterieren und mit dem in-Operator bei jeder Iteration prüfen, ob die Zeichenkette in der Zeile steht.

Wenn die Zeichenkette in der Zeile gefunden wird, wird True zurückgegeben und die Schleife abgebrochen. Wenn die Zeichenkette nach der Iteration aller Zeilen nicht gefunden wird, gibt er schließlich False zurück.

Ein Beispielcode für diesen Ansatz ist unten angegeben:

file = open("temp.txt", "w")
file.write("blabla is nothing.")
file.close()


def check_string():
    with open("temp.txt") as temp_f:
        datafile = temp_f.readlines()
    for line in datafile:
        if "blabla" in line:
            return True  # The string is found
    return False  # The string does not exist in the file


if check_string():
    print("True")
else:
    print("False")

Ausgabe:

True

Verwenden der Methode file read() zum Suchen einer Zeichenkette in einer Datei in Python

Die Methode file read() gibt den Inhalt der Datei als ganze Zeichenkette zurück. Dann können wir den in-Operator verwenden, um zu prüfen, ob die Zeichenkette in der zurückgegebenen Zeichenkette enthalten ist.

Ein Beispielcode ist unten angegeben:

file = open("temp.txt", "w")
file.write("blabla is nothing.")
file.close()


with open("temp.txt") as f:
    if "blabla" in f.read():
        print("True")

Ausgabe:

True

Verwenden der Methode find zum Suchen einer Zeichenkette in einer Datei in Python

Eine einfache find-Methode kann mit der read()-Methode verwendet werden, um die Zeichenkette in der Datei zu finden. Der Methode find wird die gewünschte Zeichenkette übergeben. Sie gibt 0 zurück, wenn die Zeichenkette gefunden wird und -1, wenn die Zeichenkette nicht gefunden wird.

Ein Beispielcode ist unten angegeben.

file = open("temp.txt", "w")
file.write("blabla is nothing.")
file.close()

print(open("temp.txt", "r").read().find("blablAa"))

Ausgabe:

-1

Verwenden des Moduls mmap zum Suchen einer Zeichenkette in einer Datei in Python

Das Modul mmap kann auch zum Suchen einer Zeichenkette in einer Datei in Python verwendet werden und kann die Leistung verbessern, wenn die Datei relativ groß ist. Die Methode mmap.mmap() erzeugt in Python 2 ein string-ähnliches Objekt, das nur die implizite Datei überprüft und nicht die ganze Datei liest.

Ein Beispielcode in Python 2 ist unten angegeben:

# python 2

import mmap

file = open("temp.txt", "w")
file.write("blabla is nothing.")
file.close()

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

Ausgabe:

True

In Python3 und höher verhält sich mmap jedoch nicht wie ein string-ähnliches Objekt, sondern erzeugt ein bytearray-Objekt. Die Methode find sucht also nach Bytes und nicht nach Strings.

Ein Beispielcode dafür ist unten angegeben:

import mmap

file = open("temp.txt", "w")
file.write("blabla is nothing.")
file.close()

with open("temp.txt") as f:
    s = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
    if s.find(b"blabla") != -1:
        print("True")

Ausgabe:

True
Syed Moiz Haider avatar Syed Moiz Haider avatar

Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.

LinkedIn

Verwandter Artikel - Python String

Verwandter Artikel - Python File