Python Glob Recursive

Python Glob Recursive
Glob jest nadrzędnym słowem, które opisuje wiele strategii, które można zastosować do dopasowania niektórych wzorców zgodnie z wytycznymi powiązanymi z powłoką Unix. Zarówno Linux, jak i UNIX mają systemy operacyjne i powłoki, które obsługują glob, i oba mają biblioteki systemowe obsługujące funkcję glob ().

Do uzyskania plików i ścieżek, które pasują do określonego wzoru. Reguły wzorców dla globu są zgodne z standardem określonym przez UNIX dla rozszerzenia ścieżki. Oprócz tego przewiduje się, że na punkcie odniesienia będzie szybciej niż istniejące podejścia do pasujących do ścieżek w katalogach. Oprócz wyszukiwania dokładnego ciągu możemy zastosować wieloznaczne karty („*,?, [zakresy]) z globem, aby proces pobierania ścieżki był prostszy i przyjazny dla użytkownika.

Czytając poniższy artykuł, otrzymasz przegląd funkcji glob (), która jest przydatnym narzędziem do lokalizowania plików rekurencyjnie za pośrednictwem kodu Pythona.

Składnia metody glob () to:

glob.glob (Path_Name, *, rekursive = false)

Uwaga: wartość rekurencyjna jest domyślnie ustawiona na false.

Przykład 1: Korzystanie z metody rekurencyjnej Glob w programie Python do wydrukowania nazwy i źródła pierwszych 10 plików w danym katalogu

W tym przykładzie użyjemy zasięgu Wild Card [0-9] do zlokalizowania wszystkich plików, których nazwy zawierają liczbę lub dowolną cyfrę przed rozszerzeniem. Zakres znaków [0-9] odpowiada dowolnej pojedynczej cyfrze. Dash reprezentuje nieprzerwany zakres kolejnych znaków, które są ułożone zgodnie z kodem znaku dla każdej litery/cyfry. Znak [0123456789] to kolejny sposób na napisanie tej samej wartości zakresu.

W dostarczonym kodzie najpierw importujemy moduł globu, aby używać jego metod. W następnym wierszu A For Loop jest przemierzany w folderze określonym globem z dziką kartą, [0-9]. Ponieważ nie określiliśmy, czy pętla jest rekurencyjna, czy nie, domyślnie nie będzie ona rekurencyjna. W pętli for For drukujemy wszystkie elementy folderu. Drukuje tylko pliki, które mają dowolną cyfrę lub liczbę przed jego rozszerzeniem, jak pokazano na poniższym zrzucie ekranu:

Przykład 2: Korzystanie z metody rekurencyjnej globu do zlokalizowania źródła i nazwy jednego pliku wymienionego w parametrze i nie dostarczając żadnych warunków funkcji

Zobaczymy, co się dzieje, jeśli w tym przykładzie nie zostaną użyte dzikie karty.

W poniższym kodzie moduł globu jest pierwszy importowany. W następnym wierszu A For Loop jest przemierzany wzdłuż globu ścieżką pliku. Należy pamiętać, że ścieżka jest w tym przypadku pliku, w przeciwieństwie do folderu w poprzedniej sprawie. Oznacza to, że istnieje tylko jeden element pasujący do globu. I jak widzimy, żadna dzika karta nie jest używana; nie ma nic do porównania. W rezultacie zwraca określony plik, który można zobaczyć na terminalu wyjściowym na poniższym zrzucie ekranu:

Przykład 3: Korzystanie z metody rekurencyjnej Glob w programie Python do wydrukowania nazwy i źródła wszystkich plików obecnych w danym katalogu

W tym przykładzie użyjemy dzikiej karty Asterisk „*” i zobaczymy, co wraca.

W dostarczonym kodzie pierwsza moduł globu jest importowany, aby używać jego metod w naszym kodzie. W następnym wierszu A For Loop jest przemierzany na świecie z określoną ścieżką folderu „Desktop”. Wzór pasuje do każdej nazwy ścieżki (pliku lub katalogu) w katalogu „Desktop”, ale nie powtarza się dalej, ponieważ drugi parametr nie został podany i domyślnie nie jest rekurencyjny. Drukuje wszystkie elementy lub pliki w folderze, ponieważ pasuje do zerowych znaków. Jest to pokazane na poniższym zrzucie ekranu:

Przykład 4: Korzystanie z metody rekurencyjnej Glob do zlokalizowania źródła i nazwy jednego pliku wymienionego w parametrze i zapewniania warunku w funkcji wraz z nim

Kolejną dziką kartą obsługiwaną przez Glob jest „?". W tej pozycji odpowiada to dowolnym pojedynczym elementowi w nazwie.

W tym przykładzie moduł globu jest pierwszy importowany. W następnym wierszu A For Loop jest przemierzany na całym świecie ze ścieżką pliku, aby dopasować dowolną nazwę pliku w folderze stacjonarnym, który zaczyna się od „losowego”, zawiera jeden dodatkowy znak dowolnego typu, czy to tekst, cyfra, czy dowolna znak, i kończy się „.tekst". Ponieważ żaden plik nie spełnił tych kryteriów, nic nie jest wyświetlane na terminalu wyjściowym, jak pokazano na poniższym zrzucie ekranu:

Przykład 5: Korzystanie z metody rekurencyjnej Glob w programie Python do wydrukowania nazwy i źródła wszystkich plików obecnych w danym katalogu z podwójną gwiazdką na ścieżce wraz z zestawem parametrów rekurencyjnych jako prawdziwy

W tym przykładzie dowiemy się o kolejnym użyciu dzikiej karty z globem. Jest to podwójna gwiazdka „**”. Umożliwia to programowi rekurencyjne dopasowanie zero lub więcej podkatalogów obecnego katalogu.

W pierwszym kroku moduł globu jest importowany. Następnie „Glob.Metoda globu ”jest wywoływana dla ścieżki folderu z dziką kartą„ ** ”z podwójną gwiazdką i rekurencyjną = prawda. Umożliwia to programowi rekurencyjne dopasowanie zero lub więcej podkatalogów bieżącego katalogu i zapisywanie listy plików w zmiennej o nazwie „F”. W następnym wierszu A For Loop jest przemierzany wzdłuż listy plików w „F” i jest wyświetlana na terminalu wyjściowym za pomocą polecenia drukuj, jak pokazano na poniższym zrzucie ekranu:

Przykład 6: Korzystanie z funkcji rekurencyjnej Glob IGLOB w programie Python, aby znaleźć nazwę i źródło wszystkich plików obecnych w danym katalogu z podwójną gwiazdką na ścieżce wraz z ustawionym parametrem rekurencyjnym jako prawdziwe

W tym przypadku wykonamy identyczną sztuczkę, którą zrobiliśmy w poprzednim. Ale zamiast używać globu.Glob, użyjemy globu.IGLOB (). Składnia „Glob.IGLOB ”jest tym samym jak glob.Glob: Glob.IGLOB (PathName, Recursive = False). Z wyjątkiem tego, że produkuje iterator, co oznacza, że ​​nie wszystkie elementy są zapisywane w pamięci. Stąd może być stosowany w znacznie bardziej wydajny sposób.

W pierwszym kroku moduł globu jest importowany. Następnie „Glob.Metoda globu ”jest wywoływana dla ścieżki folderu z dziką kartą„ ** ”z podwójną gwiazdką i rekurencyjną = prawda. Umożliwia to programowi rekurencyjne dopasowanie zero lub więcej podkatalogów obecnego katalogu. Tym razem żadna lista nie jest zapisywana w żadnej zmiennej. W następnym wierszu pętla For jest przemierzana wzdłuż ścieżki IGLOB z wskaźnikiem i jest wyświetlana na terminalu wyjściowym za pomocą polecenia drukowania w każdej pętli, jak pokazano na poniższym zrzucie ekranu:

Wniosek

Glob () i IGLOB () to dwie ważne funkcje, które iterują ścieżkę albo liniowo lub rekurencyjnie w oparciu o wartość drugiego parametru, który może być prawdziwy lub fałszywy. Python uczynił o wiele bardziej skuteczną jako metodę, co czyni ją znacznie cenniejszą niż jakiekolwiek inne podejście ręczne. Mamy nadzieję, że ten artykuł pomógł ci zrozumieć, jak te funkcje działają z różnymi dzikimi kartami i jak to ułatwia nasze życie.