Wie man Grep in Python betreibt

Wie man Grep in Python betreibt

Haben Sie jemals darüber nachgedacht, nach einer Zeichenfolge in den Dateien eines Ordners zu suchen? Sie sind wahrscheinlich mit dem GREP -Befehl vertraut, wenn Sie ein Linux -Benutzer sind. Sie können Ihren Befehl mithilfe der Python -Programmierung erstellen, um in den angegebenen Dateien nach einem Zeichenfolgenmuster zu suchen. Mit der Anwendung können Sie auch nach Mustern suchen, die regelmäßige Ausdrücke verwenden.

Mit Python in Windows können Sie einfach Textzeichenfolgen aus Dateien in einem bestimmten Ordner durchsuchen. Der GREP -Befehl ist unter Linux verfügbar. Es ist jedoch nicht unter Windows vorhanden. Die einzige andere Option besteht darin, einen Befehl zu schreiben, um die Zeichenfolge zu finden.

In diesem Artikel werden Sie übermittelt, wie Sie das GREP -Tool verwenden und dann regelmäßige Ausdrücke verwenden, um fortgeschrittenere Suchanfragen durchzuführen. Es gibt auch einige Python Grep -Beispiele, mit denen Sie lernen können, wie man es benutzt.

Was ist Grep?

Einer der vorteilhaftesten Befehle ist der GREP -Befehl. GREP ist ein nützliches Befehlszeilen-Tool, mit dem wir regelmäßige Ausdrücke verwenden können, um Klartextdateien nach bestimmten Zeilen zu durchsuchen. In Python werden normale Ausdrücke (RE) häufig verwendet, um festzustellen, ob eine Zeichenfolge mit einem bestimmten Muster übereinstimmt. Regelmäßige Ausdrücke werden durch Pythons RE -Paket vollständig unterstützt. Das Re -Modul wirft das RE.Fehlerausnahme, wenn ein Fehler bei der Verwendung regulärer Ausdrücke auftritt.

Der Grep -Begriff bedeutet, dass Sie Grep verwenden können, um festzustellen, ob die Daten, die sie erhalten, einem von Ihnen angegebenen Muster übereinstimmt. Dieses scheinbar harmlose Programm ist sehr mächtig; Seine Fähigkeit, Eingaben nach ausgefeilten Regeln zu sortieren, ist eine gemeinsame Komponente in vielen Befehlsketten.

Die GREP-Dienstprogramme sind eine Gruppe von Dateisuchprogrammen, die Grep, EGREP und FGREP umfassen. Aufgrund seiner Schnelligkeit und Fähigkeit, nur Strings und Wörter zu betrachten, reicht FGREP für die meisten Anwendungsfälle aus. Auf der anderen Seite ist das Eingeben von Grep einfach und kann von jedem verwendet werden.

Beispiel 1:

Wenn Sie Grep in Python verwenden, um eine Datei zu suchen. Befolgen Sie für Python Grep die folgenden Richtlinien.

Der erste Schritt besteht darin, die Funktion open () in Python zu verwenden. Wie der Name sagt, wird die Funktion open () zum Öffnen einer Datei verwendet. Schreiben Sie dann mit der Datei den Inhalt in der Datei und dafür schreiben () eine Funktion, die zum Schreiben von Text verwendet wird. Danach können Sie die Datei mit dem Namen speichern, den Sie mögen.

Erstellen Sie nun ein Muster. Nehmen wir an, wir möchten eine Datei nach dem Begriff „Kaffee“ suchen.”Wir müssen dieses Schlüsselwort untersuchen, damit wir die Funktion open () verwenden, um die Datei zu öffnen.

Um eine Zeichenfolge neben einem regulären Ausdruck zu vergleichen, können Sie das RE verwenden.Suchfunktion. Verwenden eines regulären Ausdrucksmusters und einer String, die RE.Search () -Methode sucht nach einem regulären Ausdrucksmuster in einer Zeichenfolge. Die Methode von Search () gibt ein Match -Objekt zurück, wenn die Suche erfolgreich ist.

Importieren Sie das RE -Modul oben im Code, um mit regulären Ausdrücken in R zu handeln. Wir drucken die gesamte Zeile, wenn sie eine Übereinstimmung mit einem regulären Ausdruck erkennt. Zum Beispiel suchen wir nach dem Wort „Kaffee“, und wenn es gefunden wird, druckt es es aus. Der gesamte Code finden Sie unten.

Import Re
Datei_one = open ("new_file.txt "," w ")
Datei_one.schreiben ("Kaffee \ nPlease")
Datei_one.schließen()
Patrn = "Kaffee"
Datei_one = open ("new_file.txt "," r ")
Für Wort in Datei_one:
Wenn re.Suche (Patrn, Wort):
Druck (Wort)

Hier können Sie sehen, dass das Wort „Kaffee“ in der Ausgabe gedruckt ist.

Beispiel 2:

Rufen Sie öffnen (Dateisposition, Modus) mit dem Dateispeicherort und dem Modus als „R“, um eine Datei zum Lesen im folgenden Code zu öffnen. Wir haben zuerst das RE -Modul importiert und dann die Datei geöffnet, indem wir den Dateinamen und den Modus angegeben haben.

Wir verwenden eine For-Loop, durch die Zeilen in der Datei durchlaufen. Verwenden Sie die IF -Anweisung if Re.Suche (Muster, Zeile), um nach einem regulären Ausdruck oder einer Zeichenfolge zu suchen, wobei das Muster der reguläre Ausdruck oder die SACE -SING ist und die Zeile die aktuelle Zeile in der Datei ist.

Import Re
Datei_one = open ("Demo.txt "," w ")
Datei_one.Write ("Erste Textzeile \ nSecond -Textzeile von Textzeile"))
Datei_one.schließen()
patrn = "zweite"
Datei_one = open ("Demo.txt "," r ")
Für Zeile in Datei_one:
Wenn re.Suche (Patrn, Linie):
Druck (Linie)

Hier wird die komplette Linie gedruckt, wo das Muster gefunden wird.

Beispiel 3:

Regelmäßige Ausdrücke können mit Pythons RE -Paket behandelt werden. Wir werden versuchen, Grep in Python auszuführen und eine Datei für ein bestimmtes Muster in dem unten angegebenen Code zu untersuchen. Wir verwenden den Lesemodus, um die entsprechende Datei zu öffnen und die Zeile über die Zeile durchzuschlitzen. Dann benutzen wir die Re.Suche () Methode, um das erforderliche Muster in jeder Zeile zu finden. Die Linie wird gedruckt, wenn das Muster erkannt wird.

Import Re
mit offen ("Demo.txt "," r ") als Datei_one:
patrn = "zweite"
Für Zeile in Datei_one:
Wenn re.Suche (Patrn, Linie):
Druck (Linie)

Hier ist die Ausgabe, die deutlich zeigt, dass das Muster in der Datei gefunden wird.

Beispiel 4:

Es gibt eine weitere brillante Möglichkeit, dies mit Python über die Befehlszeile zu tun. Diese Methode verwendet die Befehlszeile, um den regulären Ausdruck und die zu durchsuchende Datei anzugeben, und vergessen Sie nicht das Terminal, um die Datei auszuführen. Dies erlaubt uns, Grep in Python genau zu reproduzieren. Dies geschieht mit dem folgenden Code.

Import Re
Importsystem
mit offenem (sys.argv [2], "r") als Datei_one:
Für Zeile in Datei_one:
Wenn re.Suche (sys.Argv [1], Zeile):
Druck (Linie)

Die ARGV () -Funktion des SYS -Moduls erzeugt eine Sequenz, die alle Argumente enthält, die an die Befehlszeile geliefert wurden. Wir können es mit dem Namen Grep speichern.Py und führen Sie ein bestimmtes Python -Skript aus der Shell mit den nachfolgenden Argumenten aus.

Abschluss:

So durchsuchen. Verwenden Sie bei jeder Iteration das Re.Search () Methode und die Regex -Expression als primäres Argument und die Datenlinie als zweite. Wir haben das Thema mit mehreren Beispielen in diesem Artikel ausführlich durchgesehen.