Python Glob () – funktio, joka vastaa Path, Directory, File Names with Examples

glob on yleinen termi, jota käytetään määriteltyjen kuvioiden sovittamiseen Unix Shelliin liittyvien sääntöjen mukaisesti. Linux-ja Unix-järjestelmät ja kuoret tukevat myös globia ja tarjoavat myös funktio globia() järjestelmäkirjastoissa. Tässä opetusohjelmassa tarkastellaan glob() funktion käyttöä Python-ohjelmointikielellä.

käyttääksemme glob() ja siihen liittyviä funktioita meidän on tuotava glob moduuli. Muista, että glob moduuli sisältää glob() ja muita siihen liittyviä funktioita.

import glob
Import Glob Module

tarkka merkkijono haku

aloitamme yksinkertaisella esimerkillä. Katsomme, miten täsmää tarkka merkkijono tai tiedoston nimi absoluuttinen polku. Tässä esimerkissä listataan tiedosto /home/ismail/poftut.c . Voimme nähdä esimerkin alla, että funktio palauttaa luettelon, joka sisältää ottelut.

glob.glob("/home/ismail/poftut.c")
Exact String Search

yleismerkit

yleismerkki on tärkeä yleismerkki globin toiminnalle. Jokerimerkkiä tai asteriskia käytetään vastaamaan nollaa tai useampaa merkkiä. Jokerimerkki määritteli, että voi olla nolla merkkiä tai useita merkkejä, joissa merkillä ei ole merkitystä. Tässä exmaplessa vertaamme tiedostoja, joilla on .txt laajennus.

glob.glob("/home/ismail/*.txt")
Jokerit

kuten voimme katso, että on paljon .txt tiedostoja, jotka palaavat python-luettelossa.

yleismerkit Monitasohakemistoilla

Voimme käyttää yleismerkkejä monitasohakemistojen määrittämiseen. Jos haluamme etsiä yhden tason alempia hakemistoja määritellylle globille, käytämme /*/ . Tässä esimerkissä etsitään .txt tiedostoja yhden tason alahakemistoista /home/ismail . Tätä kutsutaan myös nimellä ”glob glob”, koska käytämme moduulin nimeä glob ja funktiota glob, joka on glob-moduulin tarjoama.

glob.glob("/home/ismail/*/*.txt")
Jokerit Monitasohakemistoilla

H2>yksimerkkinen jokerimerkki

on kysymysmerkki, jota käytetään vastaamaan yhtä merkkiä. Tämä voi olla hyödyllistä, jos emme tiedä yhden merkin etunimi. Tässä esimerkissä yhdistämme tiedostot tiedostoilla file?.txt tiedosto, jossa nämä täsmäävät

  • tiedostoon.txt
  • tiedosto1.txt
  • tiedosto5.txt
glob.glob("/home/ismail/file?.txt")

useita merkkejä

Glob tukee myös aakkosellisia ja numeerisia merkkejä. Merkistöalueen päättämiseen voidaan käyttää . Voimme laittaa hakasulkeiden väliin mitä haluamme. Tässä esimerkissä vertaamme tiedostojen ja kansioiden nimiä niihin, jotka aloittavat yhden e,m,p .

glob.glob("/home/ismail/*.tx?")
Merkkialueet

lukualueet

joissakin tapauksissa saatetaan haluta sopia lukualueelle. - dash määrittää alku-ja loppunumerot. Tässä esimerkissä vastaamme 0-9 kanssa 0-9. Tässä esimerkissä täsmäämme tiedostojen ja kansioiden nimiä, jotka sisältävät numeroita 0: sta 9: ään.

glob.glob("/home/ismail/**")
Lukualueet

Aakkostoalueet

voidaan määritellä myös lukualueita muistuttavat aakkostoalueet. käytämme a-z pienille merkeille, joissa A-Z isoille merkeille. Mitä jos meidän täytyy sovittaa yhteen pieniä ja isoja merkkejä yhdessä lauseessa. Voimme käyttää a-Z: tä vastaamaan sekä pieniä että isoja kirjaimia. Tässä esimerkissä vertaamme tiedostojen ja kansioiden nimiä, jotka alkavat kirjaimilla välillä a ja c

glob.glob("/home/ismail/*")
alphabet ranges

paluugeneraattori iglobilla() mehtod

yleensä glob-menetelmää käytetään luetteloimaan tiedostoja määritetyille kuvioille. Mutta joissakin tapauksissa niiden luettelointi ja tallentaminen voi olla työlästä työtä. Niinpä iglob() funktion avulla voidaan luoda iteraattori, jolla voidaan iteroida tiedostonimet next() funktio.

import glob
gen = glob.iglob("*.txt")
for item in gen:
print(item)
Paluugeneraattori iglulla() Mehtod

ohita tietyt merkit Escape () – menetelmällä

escape()funktiolla voidaan ohittaa tai jättää listaamatta joitakin tiedostoja, joiden nimillä on määritellyt merkit. Esimerkiksi jos haluamme ohittaa tiedostot, nämä nimet sisältävät - tai _ tai # Voimme käyttää escape () – funktiota antamalla nämä merkit.

chars_skip = "-_#"
for char_skip in chars_skip:
esc_set = "*" + glob.escape(char_skip)+ "*" + ".txt"
for txt in (glob.glob(esc_set)):
print(txt)

Vastaa

Sähköpostiosoitettasi ei julkaista.