Denna handledning ger en översikt över Python glob()-metoden i glob-modulen. Den innehåller flera exempel för att bringa klarhet.
Oftast behöver programmerarna gå igenom en lista med filer på en viss plats, som oftast har ett visst mönster. Pythons glob-modul har flera funktioner som kan hjälpa till att lista filer under en angiven mapp. Vi kan filtrera dem baserat på tillägg, eller med en viss sträng som en del av filnamnet.
Alla metoder i Glob-modulen följer Unix-stilens mekanism och regler för mönstermatchning. Den tillåter dock inte att tilde (~) och miljövariabler expanderas.
Python Glob()-metoder
I dag ska vi diskutera tre primära funktioner i Glob-modulen.
glob(file_pattern, recursive = False)
Den hämtar en lista med filer som matchar det angivna mönstret i parametern file_pattern.
Filemönstret kan vara en absolut eller relativ sökväg. Det kan också innehålla jokertecken som ”*” eller ”?”.
Den rekursiva parametern är avstängd (False) som standard. När den är True söker den rekursivt efter filer i alla underkataloger till den aktuella katalogen.
Nu ska vi kolla in några exempel:
Kontrollera den aktuella katalogen efter Python-skriptfiler
Underliggande kod kontrollerar endast efter .py-filer i den aktuella katalogen.
>>> import glob>>> for py in glob.glob("*.py"):... print(py)...copy_file1.pycopy_file2.pydecimal_sample.py
En annan exempelkod – den kontrollerar om det finns .py-filer i aktuell dir och underkataloger.
>>> import glob>>> for py in glob.glob("*.py"):... print(py)...copy_file1.pycopy_file2.pydecimal_sample.pytest_num.pytest_python_in_with_if.pytest_scope.py
Lista filer med ett mönster
Vi kan ange ett sökvägsmönster genom att inkludera några jokertecken som ? eller ett numeriskt intervall . Nedanstående kod listar alla filer vars namn börjar med ”test” följt av en siffra.
>>> for py in glob.glob("test.py"):... print(py)...test1.pytest2.py
Vi kan kontrollera ytterligare ett exempel med frågetecken i mönstret.
>>> for py in glob.glob("?????.py"):... print(py)...quiz1.pytest1.pytest2.py
Ovanstående for loop-anvisning skrev ut alla .py-filer med fem bokstäver.
Det följande uttalandet skulle skriva ut namnen på mappar rekursivt i den aktuella arbetskatalogen.
>>> glob.glob('selenium/**/', recursive=True)
iglob() metoden | Python Glob
Denna metod skapar ett Python generatorobjekt som kan användas för att lista filer under en viss katalog. Du kan anropa funktionen next() för att skriva ut filernas namn.
Kontrollera exempelkoden nedan:
>>> gen = glob.iglob("*.py")>>> type(gen)<class 'generator'>>>> for py in gen:... print(py)...copy_file1.pycopy_file2.pydecimal_sample.pyfind_seed.pyfrozen_set.py
escape() method
Den gör det möjligt att undslippa den givna teckensekvensen. Den kan vara praktisk för att hitta filer med vissa tecken i filnamnet.
Kontrollera nedanstående exempel:
>>> char_seq = "-_#">>> for spcl_char in char_seq:... esc_set = "*" + glob.escape(spcl_char) + "*" + ".py"... for py in (glob.glob(esc_set)):... print(py)...python quiz-classes-2.pypython-class.pypython-lists.pypython-random#num.pypython-set.pypython-tuples.pypython-while_loop.pycopy_file#2.pydecimal_sample.pyfind_seed.pyfrozen-set.py
Must check out – Python to list all files in a directory