Jak biec grep w Python

Jak biec grep w Python

Czy kiedykolwiek zastanawiałeś się nad szukaniem ciągu w plikach folderu? Prawdopodobnie znasz polecenie GREP, jeśli jesteś użytkownikiem Linuksa. Możesz utworzyć swoje polecenie za pomocą programowania Python do wyszukiwania wzoru ciągu w określonych plikach. Aplikacja pozwala również wyszukiwać wzorce wykorzystujące wyrażenia regularne.

Korzystając z Pythona w systemie Windows, możesz po prostu wyszukiwać struny tekstowe z plików w określonym folderze. Polecenie GREP jest dostępne w Linux; Jednak nie jest obecny w systemie Windows. Jedyną inną opcją jest napisanie polecenia w celu znalezienia ciągu.

W tym artykule nauczy Cię, jak korzystać z narzędzia GREP, a następnie użyć wyrażeń regularnych do wykonywania bardziej zaawansowanych wyszukiwań. Istnieje również kilka przykładów Python Grep, które pomogą Ci nauczyć się z niego korzystać.

Co to jest grep?

Jednym z najbardziej korzystnych poleceń jest polecenie GREP. GREP to przydatne narzędzie wiersza poleceń, które pozwala nam używać wyrażeń regularnych do wyszukiwania zwykłych plików tekstowych dla określonych wierszy. W Pythonie wyrażenia regularne (re) są powszechnie używane do ustalenia, czy ciąg pasuje do określonego wzoru. Wyrażenia regularne są w pełni poparte pakietem RE Pythona. Moduł Re rzuca RE.Wyjątek błędu, gdy wystąpi błąd podczas korzystania z wyrażeń regularnych.

Termin GREP oznacza, że ​​możesz użyć GREP, aby sprawdzić, czy dane, które otrzymuje, pasuje do określonego wzoru. Ten pozornie niewinny program jest bardzo potężny; Jego zdolność do sortowania danych wejściowych zgodnie z wyrafinowanymi regułami jest wspólnym elementem w wielu łańcuchach poleceń.

Narzędzia GREP to grupa programów poszukiwania plików, które obejmują GREP, EGREP i FGREP. Ze względu na jego szybkość i zdolność do samego patrzenia na struny i słowa, FGREP jest wystarczający do większości przypadków użycia. Z drugiej strony, pisanie grep jest proste i może być używane przez każdy.

Przykład 1:

Gdy użyjesz GREP w Pythonie do wyszukiwania pliku, będzie szuka wyrażenia regularnego na całym świecie i wyprowadzi linię, jeśli go znajdzie. W przypadku Pythona Grep postępuj zgodnie z poniższymi wytycznymi.

Pierwszym krokiem jest użycie funkcji Open () w Pythonie. Jak sama nazwa mówi, funkcja Open () jest używana w celu otwarcia pliku. Następnie, używając pliku, zapisz zawartość w pliku, a dla tego zapis () to funkcja używana do pisania tekstu. Następnie możesz zapisać plik z nazwą, którą lubisz.

Teraz stwórz wzór. Powiedzmy, że chcemy przeszukać plik terminu „kawa.„Musimy zbadać to słowo kluczowe, więc użyjemy funkcji Open (), aby otworzyć plik.

Aby porównać ciąg obok wyrażenia regularnego, możesz użyć RE.Funkcja wyszukiwania (). Używając wzorca wyrażenia regularnego i ciągów, Re RE.metoda wyszukiwania () szuka wzorca wyrażenia regularnego w ciągu. Metoda wyszukiwania () zwróci obiekt dopasowania, jeśli wyszukiwanie się powiedzie.

Zaimportuj moduł Re na górze kodu, aby poradzić sobie z wyrażeniami regularnymi w R. Wydrukujemy całą linię, jeśli wykryje dopasowanie za pomocą wyrażenia regularnego. Na przykład szukamy słowa „kawa”, a jeśli zostanie znalezione, wydrukuje je. Cały kod można znaleźć poniżej.

import re
file_one = Open ("NEW_FILE.txt "," w ")
File_one.Write („Coffee \ nplease”)
File_one.zamknąć()
patrn = „kawa”
file_one = Open ("NEW_FILE.txt "," r ")
Word Word in File_one:
Jeśli ponownie.Wyszukaj (patrn, słowo):
Drukuj (słowo)

Tutaj widać, że słowo „kawa” jest wydrukowane na wyjściu.

Przykład 2:

Zadzwoń otwórz (lokalizacja pliku, tryb) za pomocą lokalizacji i trybu pliku jako „r”, aby otworzyć plik do odczytu w następującym kodzie. Najpierw zaimportowaliśmy moduł Re, a następnie otworzyliśmy plik, podając nazwę i tryb pliku.

Używamy pętli, pętli przez linie w pliku. Użyj instrukcji IF, jeśli ponownie.Wyszukaj (wzór, linia) w celu wyszukiwania wyrażenia regularnego lub ciągu, przy czym wzór jest wyrażeniem regularnym lub ciągiem, a linia jest bieżącą linią w pliku.

import re
file_one = Open ("Demo.txt "," w ")
File_one.Write („Pierwszy wiersz tekstu \ nsecond wiersz tekstu \ nthird wiersz tekstu”)
File_one.zamknąć()
patrn = „drugi”
file_one = Open ("Demo.txt "," r ")
dla linii w pliku_one:
Jeśli ponownie.Wyszukaj (patrn, linia):
wydruku (linia)

Tutaj kompletna linia jest drukowana tam, gdzie znajduje się wzór.

Przykład 3:

Wyrażenia regularne mogą być obsługiwane za pomocą pakietu RE Pythona. Postaramy się wykonać GREP w Pythonie i zbadać plik pod kątem określonego wzorca w podanym poniżej kodzie. Używamy trybu czytania, aby otworzyć odpowiedni plik i zapętlimy linię IT według linii. Następnie używamy RE.metoda wyszukiwania () w celu znalezienia wymaganego wzoru w każdej linii. Linia jest drukowana, jeśli wzór zostanie wykryty.

import re
z otwartym („demo.txt "," r ") jako plik_one:
patrn = „drugi”
dla linii w pliku_one:
Jeśli ponownie.Wyszukaj (patrn, linia):
wydruku (linia)

Oto dane wyjściowe, które wyraźnie pokazuje, że wzór znajduje się w pliku.

Przykład 4:

Jest kolejny genialny sposób na zrobienie tego z Pythonem za pośrednictwem wiersza poleceń. Ta metoda wykorzystuje wiersz poleceń do określenia wyrażenia regularnego i pliku do przeszukania, i nie zapomnij o terminalu do wykonania pliku. To pozwala nam dokładnie odtworzyć Grep w Pythonie. Odbywa się to z poniższym kodem.

import re
Import Sys
z otwartym (sys.argv [2], „r”) jako plik_one:
dla linii w pliku_one:
Jeśli ponownie.Wyszukaj (sys.argv [1], wiersz):
wydruku (linia)

Funkcja argv () modułu SYS generuje sekwencję zawierającą wszystkie argumenty dostarczone do wiersza poleceń. Możemy go zapisać pod nazwą GREP.Py i uruchom określony skrypt Pythona ze skorupy z kolejnymi argumentami.

Wniosek:

Aby wyszukać plik zatrudniający GREP w Pythonie, zaimportować pakiet „RE”, prześlij plik i użyj pętli do iteracji na każdej linii. Na każdej iteracji użyj Re RE.metoda wyszukiwania () i wyrażenie regex jako główny argument i linia danych jako druga. Szczegółowo omówiliśmy ten temat z kilkoma przykładami w tym artykule.