glob
je obecný termín používaný k definování techniky, aby odpovídaly uvedené vzory podle pravidla související s Unix shell. Linux a Unix systémy a Shelly také podporují glob a také poskytují funkce glob () v systémových knihovnách. V tomto tutoriálu se podíváme glob()
využití funkcí v programovacím jazyce Python.
abychom mohli používat glob()
a související funkce, musíme importovat modul glob
. Mějte na paměti, že glob
modul obsahuje glob()
a další související funkce.
import glob
Přesný Řetězec Vyhledávání
začneme s jednoduchým příkladem. Podíváme se, jak porovnat přesný název řetězce nebo souboru s absolutní cestou. V tomto příkladu uvedeme soubor /home/ismail/poftut.c
. Níže vidíme příklad, že funkce vrací seznam, který obsahuje shody.
glob.glob("/home/ismail/poftut.c")
regulární výrazy
Zástupný je důležité glob operátor glob operace. Zástupný znak nebo hvězdička se používá k přiřazení nuly nebo více znaků. Zástupný znak specifikoval, že může existovat nulový znak nebo více znaků, kde znak není důležitý. V tomto exmaple porovnáme soubory, které mají .txt
rozšíření.
glob.glob("/home/ismail/*.txt")
Jak můžeme vidět, že existuje mnoho .txt
soubory, a ty vrátí v Pythonu seznam.
zástupné znaky s víceúrovňovými adresáři
můžeme použít zástupné znaky pro určení víceúrovňových adresářů. Pokud chceme hledat adresáře o jednu úroveň dolů pro zadaný glob, použijeme /*/
. V tomto příkladu hledáme .txt
soubory v adresářích o jednu úroveň dolů v /home/ismail
. Tomu se také říká „glob glob“, protože používáme název modulu glob a funkci glob, kterou poskytuje modul glob.
glob.glob("/home/ismail/*/*.txt")
Jeden Znak Wildcard
Tam je otazník, který se používá, aby odpovídaly jeden znak. To může být užitečné, pokud neznáme jediný znak pro křestní jméno. V tomto příkladu porovnáme soubory se soubory file?.txt
soubor, kde budou odpovídat souboru
- .txt
- soubor1.txt
- soubor5.txt
- …
glob.glob("/home/ismail/file?.txt")
Více Znaků
Glob podporuje také abecední a číselné znaky. Můžeme použít se používá k ukončení rozsahu znaků. Můžeme dát, co chceme, aby odpovídaly mezi hranaté závorky. V tomto příkladu porovnáme názvy souborů a složek, které začínají jedním z
e,m,p
.
glob.glob("/home/ismail/*.tx?")
Počet se Pohybuje
V některých případech, budeme chtít zápas číslo rozsah. Můžeme použít -
dash pro určení počátečních a koncových čísel. V tomto příkladu porovnáme 0 až 9 s 0-9
. V tomto příkladu porovnáme názvy souborů a složek, které obsahují čísla od 0 do 9.
glob.glob("/home/ismail/**")
Abeceda se Pohybuje
můžeme také definovat Abecedu pohybuje podobné číslo se pohybuje. použijeme a-z
pro malá písmena, kde A-Z pro velká písmena. Co když potřebujeme sladit malá a velká písmena v jediném příkazu. Můžeme použít a-Z pro shodu malých i velkých písmen. V tomto příkladu, budeme odpovídat soubory a složky jména těch, začíná dopisů mezi a
c
glob.glob("/home/ismail/*")
Návrat Generátor s iglob() Mehtod
Obecně glob metoda se používá k zobrazení seznamu souborů pro zadaný vzory. Ale v některých případech jejich výpis a ukládání může být únavná práce. Takže iglob()
funkci lze použít k vytvoření iterátoru, který lze použít k iteraci názvů souborů pomocí funkce next()
.
import glob
gen = glob.iglob("*.txt")
for item in gen:
print(item)
Přeskočit Specifické Znaky escape() Metoda
escape()
funkce může být použit pro přeskočení nebo ne seznam některé soubory, ty jména se určuje znaky. Například pokud chceme přeskočit soubory těchto jmen obsahuje -
nebo _
nebo #
můžeme použít escape() funkce tím, že poskytuje tyto znaky.
chars_skip = "-_#"
for char_skip in chars_skip:
esc_set = "*" + glob.escape(char_skip)+ "*" + ".txt"
for txt in (glob.glob(esc_set)):
print(txt)