Tässä opetusohjelmassa luodaan yleiskatsaus glob-moduulin Python-menetelmään glob(). Se sisältää useita esimerkkejä selkeyden tuomiseksi.
Tavanaan ohjelmoijat tarvitsevat läpikäydä luettelon tiedostoja jossakin sijainnissa, useimmiten tietyn mallin mukaan. Pythonin glob-moduulissa on useita funktioita, jotka voivat auttaa tietyn kansion alla olevien tiedostojen listaamisessa. Voimme suodattaa niitä laajennusten perusteella tai tietyn merkkijonon avulla tiedostonimen osana.
Kaikki Glob-moduulin metodit noudattavat Unix-tyylistä hahmontäsmäysmekanismia ja -sääntöjä. Se ei kuitenkaan salli tilden (~) ja ympäristömuuttujien laajentamista.
Pythonin Glob()-metodit
Tänään käsittelemme Glob-moduulin kolmea pääasiallista toimintoa.
glob(tiedosto_kuvio, rekursiivinen = False)
Hakee luettelon tiedostoista, jotka sopivat tiedostoon_kuvio-parametrissa määritettyyn kuvioon.
tiedosto_kuvio voi olla absoluuttinen tai suhteellinen polku. Se voi myös sisältää jokerimerkkejä, kuten ”*”- tai ”?”-symboleja.
Rekursiivinen parametri on oletusarvoisesti pois päältä (False). Kun se on True, se etsii rekursiivisesti tiedostoja nykyisen hakemiston kaikkien alihakemistojen alta.
Katsotaan nyt muutamia esimerkkejä:
Tarkistetaan nykyinen hakemisto Python-skriptitiedostojen varalta
Alhaalla oleva koodi etsii .py-tiedostoja vain nykyisestä hakemistosta.
>>> import glob>>> for py in glob.glob("*.py"):... print(py)...copy_file1.pycopy_file2.pydecimal_sample.py
Toinen esimerkkikoodi – Tarkistetaan .py-tiedostot nykyisestä diristä ja alihakemistoista.
>>> 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 tiedostoja kuvion avulla
Voidaan antaa polun nimikuvio sisällyttämällä siihen joitakin jokerimerkkejä, kuten ? tai numeroalue . Alla oleva koodi listaa kaikki tiedostot, joiden nimi alkaa sanalla ”test”, jota seuraa numero.
>>> for py in glob.glob("test.py"):... print(py)...test1.pytest2.py
Katsotaan vielä yksi esimerkki, jossa käytetään kysymysmerkkiä kuviossa.
>>> for py in glob.glob("?????.py"):... print(py)...quiz1.pytest1.pytest2.py
Yllä oleva for-silmukan lauseke tulosti kaikki .py-tiedostot, joissa on viisi kirjainta.
Oheinen lauseke tulostaisi nykyisen työhakemiston kansioiden nimet rekursiivisesti.
>>> glob.glob('selenium/**/', recursive=True)
iglob()-metodi | Python Glob
Tämä metodi luo Python-generaattori-olion, jota voidaan käyttää tietyn hakemiston alla olevien tiedostojen listaamiseen. Voit kutsua next()-funktiota tulostaaksesi tiedostojen nimet.
Katso alla oleva esimerkkikoodi:
>>> 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()-metodi
Metodin avulla on mahdollista väistää annettu merkkijono. Se voi olla kätevä sellaisten tiedostojen etsimiseen, joiden tiedostonimissä on tiettyjä merkkejä.
Tarkista alla olevat esimerkit:
>>> 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