Python

Python Glob funkcija

Python Glob funkcija

Python je eden najpogosteje uporabljenih splošnih programskih jezikov v zadnjem času. Ponuja številne vgrajene module, funkcije in ključne besede za izvajanje nalog, povezanih z datotekami. Glob je izraz, ki se nanaša na tehnike, ki se uporabljajo za ujemanje določenih vzorcev v skladu s pravili, povezanimi z lupino UNIX. Operacijski sistemi, ki temeljijo na Linuxu in UNIX, zagotavljajo funkcijo glob () za iskanje datotek in imenikov po določenem vzorcu. Python ponuja tudi vgrajen glob modul za dostop do datotek in imen poti, ki se ujemajo z določenim vzorcem. Za naloge, opisane v tem članku, bomo uporabili funkcijo Python glob () modula glob. V tem članku je razloženo, kako uporabiti funkcijo glob () za iskanje imen poti in imen datotek glede na dani vzorec.

Primer 1: Ujemanje imena datoteke ali imena poti z Absolutno potjo

Oglejmo si nekaj primerov za razumevanje delovanja in delovanja funkcije glob (). Začeli bomo s preprostim primerom ujemanja imena datoteke ali imena poti z absolutno potjo. Če se ime datoteke ali ime poti ujema z absolutno potjo, funkcija glob () vrne ujemanja v obliki seznama; v nasprotnem primeru funkcija glob () vrne prazen seznam.

#importing glob modula
uvoz glob
# using funkcijo glob za ujemanje imena poti z absolutno potjo
#matching absolutna pot imenika prenosov
tisk (glob.glob ("/ home / linuxhint / Downloads"))
#matching absolutna pot do imenika dokumentov
tisk (glob.glob ("/ home / linuxhint / Documents"))
#matching absolutna pot namizja
tisk (glob.glob ("/ home / linuxhint / Desktop"))
#matching absolutna pot datotek
tisk (glob.glob ("/ home / linuxhint / Desktop / script.sh "))
tisk (glob.glob ("/ home / linuxhint / Downloads / format.py "))
tisk (glob.glob ("/ doma / linuxhint / Dokumenti / kalkulator.py "))
#navedba poti do datoteke, ki ne obstaja
# funkcija glob vrne prazen seznam
tisk (glob.glob ("/ home / linuxhint / Documents / myfile.py "))

Izhod

Rezultat prikazuje ujemanja.

2. primer: Uporaba nadomestnih znakov za iskanje poti

Za iskanje poti je mogoče uporabiti nadomestne znake s funkcijo glob (). Najpogosteje uporabljeni nadomestni znaki so zvezdica (*), vprašaj (?), obseg števil [0-9] in abecede [a-z].  Najprej bomo razpravljali o uporabi zvezdice v funkciji glob ().

Uporaba nadomestne zvezdice z zvezdico (*) za iskanje poti

Nadomestni znak z zvezdico se uporablja za ujemanje nič ali več znakov absolutne poti. Če z zvezdico niso podani nobeni znaki, bo funkcija navedla absolutno pot vseh datotek, imenikov in podimenikov dane poti. Z zvezdico lahko napišete tudi nekatere znake, ki se bodo ujemali z absolutno potjo glede na dane znake. Na primer, če morate najti absolutno pot .txt datoteke, nato lahko * nadomestni znak uporabite kot *.txt.

To bomo izvedli v našem skriptu Python.

#importing glob modula
uvoz glob
#finding absolutno pot datotek in imenikov
tisk (glob.glob ("/ home / linuxhint / Downloads / *"))
natisni ("----------------------------------------")
#finding absolutno pot .txt v namizju
tisk (glob.glob ("/ home / linuxhint / Desktop / *.txt "))
natisni ("----------------------------------------")
#poiščite absolutno pot .sh v imeniku Desktop
tisk (glob.glob ("/ home / linuxhint / Desktop / *.sh "))
natisni ("----------------------------------------")
#finding absolutno pot .py v imeniku Documents
tisk (glob.glob ("/ home / linuxhint / Documents / *.py "))
natisni ("----------------------------------------")

Izhod

Izhod prikazuje absolutno pot datotek in imenikov v skladu z določenimi pravili v funkciji globe ().

Uporaba vprašaja (?) Nadomestni operater

Vprašaj (?) Nadomestni operator se uporablja za ujemanje enega samega znaka. To je lahko koristno v situacijah, ko v danem imenu ne poznate niti enega znaka.

To bomo izvedli v našem skriptu Python.

#importing glob modula
uvoz glob
#finding datoteko z operaterjem * wildcard
tisk (glob.glob ("/ home / linuxhint / Desktop / file?.txt "))

Izhod

Rezultat prikazuje ujemajoče se datoteke.

Uporaba operaterja nadomestnega območja

Nadomestni operater obsega se uporablja za ujemanje datotek v določenem obsegu znakov ali številk. Območje je določeno znotraj oglatih oklepajev [].

Absolutno pot datotek bomo našli z določitvijo obsega.

#importing glob modula
uvoz glob
#finding absolutno pot datotek v določenem obsegu
#definiranje obsega v znakih
tisk (glob.glob ("/ home / linuxhint / Desktop / [a-f] *"))
#printing črtkane črte za razlikovanje izhoda
natisni ("------------------------------------------")
#definiranje obsega v številkah
tisk (glob.glob ("/ home / linuxhint / Desktop / [1-5] *"))

Izhod

Rekurzivno iskanje datotek z uporabo glob ()

Funkcija glob kot argument vzame dva parametra. Prvi parameter definira ime poti, drugi parameter pa rekurzivno lastnost. Drugi parameter ni obvezen, rekurzivna lastnost pa je privzeto nastavljena na »false«. Lahko pa rekurzivno lastnost nastavite na »true«, če želite rekurzivno najti pot do datoteke.

V našem skriptu Python bomo nastavili rekurzivno lastnost, ki bo enaka "true", in rekurzivno poiskali absolutno pot datotek.

#importing glob modula
uvoz glob
#poiščite datoteke rekurzivno
tisk (glob.glob ("/ home / linuxhint / Documents / *", rekurzivno = True))

Izhod

Zaključek

Glob je pogost izraz, ki se nanaša na tehnike, ki se uporabljajo za ujemanje določenih vzorcev v skladu s pravili, povezanimi z lupino UNIX. Python ponuja vgrajeni glob modul in funkcijo za dostop do imen poti po danih pravilih. V tem članku je razloženo, kako s pomočjo funkcije glob () poiskati imena poti z različnimi primeri.

Kako prikazati števec FPS v igrah Linux
Linux gaming je dobil velik zagon, ko je Valve leta 2012 napovedal podporo Linuxu za odjemalca Steam in njihove igre. Od takrat se je veliko AAA in in...
Kako prenesti in igrati Sid Meier's Civilization VI v Linuxu
Uvod v igro Civilization 6 je sodoben pogled na klasični koncept, uveden v seriji iger Age of Empires. Ideja je bila dokaj preprosta; začeli bi v zelo...
Kako namestiti in igrati Doom v Linuxu
Uvod v Doom Serija Doom je nastala v devetdesetih letih po izidu prvotnega Dooma. Bil je takojšen hit in od takrat naprej je serija iger prejela števi...