Python jest jednym z najczęściej używanych języków programowania ogólnego przeznaczenia w ostatnich czasach. Zawiera wiele wbudowanych modułów, funkcji i słów kluczowych do wykonywania zadań związanych z plikami. Glob to termin, który odnosi się do technik używanych do dopasowywania określonych wzorców zgodnie z zasadami związanymi z powłoką UNIX. Systemy operacyjne oparte na Linux i UNIX zapewniają funkcję glob() do wyszukiwania plików i katalogów zgodnie z podanym wzorcem. Python zapewnia również wbudowany moduł glob umożliwiający dostęp lub pobieranie plików i ścieżek, które pasują do określonego wzorca. Do zadań opisanych w tym artykule będziemy używać funkcji Python glob() modułu glob. Ten artykuł wyjaśnia, jak używać funkcji glob() do znajdowania ścieżek i nazw plików zgodnie z podanym wzorcem.
Przykład 1: Dopasuj nazwę pliku lub nazwę ścieżki do ścieżki bezwzględnej
Spójrzmy na kilka przykładów, aby zrozumieć działanie i działanie funkcji glob(). Zaczniemy od prostego przykładu dopasowania nazwy pliku lub ścieżki do ścieżki bezwzględnej. Jeśli nazwa pliku lub ścieżka pasuje do ścieżki bezwzględnej, funkcja glob() zwraca dopasowania w postaci listy; w przeciwnym razie funkcja glob() zwraca pustą listę.
#importowanie modułu globimportuj świat
#używając funkcji glob, aby dopasować nazwę ścieżki do ścieżki bezwzględnej
#dopasowanie bezwzględnej ścieżki katalogu pobierania
drukuj(glob.glob("/home/linuxhint/Pobrane"))
#pasujące bezwzględną ścieżkę katalogu dokumentów
drukuj(glob.glob("/home/linuxhint/Dokumenty"))
#dopasowanie bezwzględnej ścieżki pulpitu
drukuj(glob.glob("/home/linuxhint/komputer"))
#dopasowanie bezwzględnej ścieżki plików
drukuj(glob.glob("/home/linuxhint/Pulpit/skrypt.sz"))
drukuj(glob.glob("/home/linuxhint/Pobieranie/format.py"))
drukuj(glob.glob("/home/linuxhint/Dokumenty/kalkulator.py"))
#określanie ścieżki do pliku, który nie istnieje
#funkcja glob zwróci pustą listę
drukuj(glob.glob("/home/linuxhint/Dokumenty/mojplik.py"))
Wynik
Dane wyjściowe pokazują dopasowania.
Przykład 2: Używanie symboli wieloznacznych do wyszukiwania ścieżki
Możliwe jest użycie symboli wieloznacznych z funkcją glob() do wyszukiwania ścieżki. Najczęściej używane symbole wieloznaczne to gwiazdka (*), znak zapytania (?), zakres liczb [0-9] i zakres alfabetów [a-z]. Najpierw omówimy użycie gwiazdki w funkcji glob().
Używanie gwiazdki (*) Wildcard do wyszukiwania ścieżki
Operator symboli wieloznacznych z gwiazdką służy do dopasowania zero lub więcej znaków ścieżki bezwzględnej. Jeśli nie podano żadnego znaku z gwiazdką, funkcja wyświetli bezwzględną ścieżkę wszystkich plików, katalogów i podkatalogów w podanej ścieżce. Możesz również wpisać kilka znaków z gwiazdką i będzie pasować do bezwzględnej ścieżki na podstawie podanych znaków. Na przykład, jeśli chcesz znaleźć absolutną ścieżkę .txt, wtedy * symbol wieloznaczny może być użyty jako *.tekst.
Zaimplementujemy to w naszym skrypcie Pythona.
#importowanie modułu globimportuj świat
#znajdowanie bezwzględnej ścieżki plików i katalogów
drukuj(glob.glob("/home/linuxhint/Pobrane/*"))
wydrukować("----------------------------------------")
#znalezienie bezwzględnej ścieżki path .pliki txt w katalogu Desktop
drukuj(glob.glob("/home/linuxhint/Pulpit/*.tekst"))
wydrukować("----------------------------------------")
#znalezienie bezwzględnej ścieżki path .pliki sh w katalogu Pulpit
drukuj(glob.glob("/home/linuxhint/komputer/*.sz"))
wydrukować("----------------------------------------")
#znalezienie bezwzględnej ścieżki path .pliki py w katalogu Dokumenty
drukuj(glob.glob("/home/linuxhint/Dokumenty/*.py"))
wydrukować("----------------------------------------")
Wynik
Dane wyjściowe pokazują bezwzględną ścieżkę plików i katalogów zgodnie ze zdefiniowanymi regułami w funkcji globe().
Używanie znaku zapytania (?) Operator wieloznaczny
Znak zapytania (?) do dopasowania pojedynczego znaku używany jest operator wieloznaczny. Może to być przydatne w sytuacjach, gdy nie znasz ani jednego znaku w podanej nazwie.
Zaimplementujemy to w naszym skrypcie Pythona.
#importowanie modułu globimportuj świat
#znajdowanie pliku z operatorem * wieloznacznym
drukuj(glob.glob("/home/linuxhint/Pulpit/plik?.tekst"))
Wynik
Dane wyjściowe pokazują dopasowane pliki.
Korzystanie z operatora wieloznacznego zasięgu
Operator wieloznaczny zakresu służy do dopasowywania plików w określonym zakresie znaków lub liczb. Zakres jest zdefiniowany w nawiasach kwadratowych [].
Bezwzględną ścieżkę plików znajdziemy definiując zakres.
#importowanie modułu globimportuj świat
#znajdowanie bezwzględnej ścieżki plików w podanym zakresie
#definiowanie zakresu w znakach
drukuj(glob.glob("/home/linuxhint/Pulpit/[a-f]*"))
#drukowanie kropkowanej linii w celu odróżnienia wyjścia
wydrukować("------------------------------------------")
#definiowanie zakresu w liczbach
drukuj(glob.glob("/home/linuxhint/Pulpit/[1-5]*"))
Wynik
Znajdź pliki rekurencyjnie za pomocą glob()
Funkcja glob przyjmuje dwa parametry jako argument. Pierwszy parametr określa nazwę ścieżki, a drugi parametr określa właściwość rekurencyjną. Drugi parametr jest opcjonalny, a właściwość rekurencyjna jest domyślnie ustawiona na „false”. Możesz jednak ustawić właściwość rekursywną na „prawda”, aby rekurencyjnie znaleźć ścieżkę do pliku.
Ustawimy właściwość rekurencyjną równą „true” w naszym skrypcie Pythona i rekurencyjnie znajdziemy bezwzględną ścieżkę plików.
#importowanie modułu globimportuj świat
#rekurencyjne znajdowanie plików
drukuj(glob.glob("/home/linuxhint/Dokumenty/*",recursive=True))
Wynik
Wniosek
Glob to powszechny termin, który odnosi się do technik używanych do dopasowywania określonych wzorców zgodnie z regułami dotyczącymi powłoki UNIX. Python zapewnia wbudowany moduł glob i funkcję dostępu do nazw ścieżek zgodnie z podanymi regułami. Ten artykuł wyjaśnia, jak używać funkcji glob() do wyszukiwania ścieżek z różnymi przykładami.