Denne vejledning giver en oversigt over Python glob()-metoden i glob-modulet. Den indeholder flere eksempler for at skabe klarhed.
Sædvanligvis har programmører brug for at gennemløbe en liste af filer på en bestemt placering, som for det meste har et bestemt mønster. Pythons glob-modul har flere funktioner, der kan hjælpe med at liste filer under en bestemt mappe. Vi kan filtrere dem baseret på udvidelser eller med en bestemt streng som en del af filnavnet.
Alle metoderne i Glob-modulet følger den Unix-agtige mønstermatchningsmekanisme og -regler. Det tillader dog ikke at udvide tilde (~) og miljøvariabler.
Python Glob()-metoder
I dag vil vi diskutere tre primære funktioner i Glob-modulet.
glob(file_pattern, recursive = False)
Det henter listen over filer, der matcher det angivne mønster i parameteren file_pattern.
Det file_pattern kan være en absolut eller relativ sti. Det kan også indeholde jokertegn som f.eks. symbolerne “*” eller “?”.
Den rekursive parameter er som standard slået fra (False). Når den er True, søges der rekursivt i filer under alle undermapper i den aktuelle mappe.
Lad os nu tjekke nogle eksempler:
Tjek den aktuelle mappe for Python-scriptfiler
Den nedenstående kode tjekker kun for .py-filer i den aktuelle mappe.
>>> import glob>>> for py in glob.glob("*.py"):... print(py)...copy_file1.pycopy_file2.pydecimal_sample.py
En anden eksempelkode – Den kontrollerer for .py-filer i det aktuelle dir og undermapper.
>>> 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
Liste over filer med et mønster
Vi kan angive et pathnamemønster ved at inkludere nogle jokertegn som ? eller et numerisk område . Nedenstående kode viser en liste over alle filer, hvis navn begynder med “test” efterfulgt af et tal.
>>> for py in glob.glob("test.py"):... print(py)...test1.pytest2.py
Lad os kontrollere endnu et eksempel ved hjælp af spørgsmålstegnet i mønsteret.
>>> for py in glob.glob("?????.py"):... print(py)...quiz1.pytest1.pytest2.py
Overstående for loop-anvisning udskrev alle .py-filer med fem bogstaver.
Den følgende erklæring ville udskrive navnene på mapper rekursivt i den aktuelle arbejdsmappe.
>>> glob.glob('selenium/**/', recursive=True)
iglob() metode | Python Glob
Denne metode opretter et Python-generatorobjekt, som kan bruges til at liste filer under en given mappe. Du kan kalde funktionen next() for at udskrive filnavne.
Kontroller nedenstående eksempelkode:
>>> 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 giver mulighed for at undslippe den givne tegnsekvens. Du kan finde den praktisk til at finde filer med bestemte tegn i deres filnavne.
Kig på nedenstående eksempler:
>>> 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
Må du tjekke – Python to list all files in a directory