Joskus työskennellessäsi tiedostojen kanssa Pythonissa ilmenee ongelma, kuinka saada kaikki tiedostot hakemistoon. Tässä artikkelissa käsittelemme erilaisia menetelmiä kuinka luetella kaikki tiedostonimet hakemistossa Pythonissa.
Tiedostotoimintojen suorittaminen on ohjelmoijien pakollinen taito. Tiedostotoimintojen oppiminen Pythonilla auttaa tiedostojen hallinnassa, tiedostojen integroinnissa ohjelmiesi kanssa, todellisten ohjelmien rakentamisessa jne. Käsittelemme kaikkein perustavanlaatuisimman käsitteen kaikkien tietyssä hakemistossa olevien tiedostojen luetteloimisesta.
Käsittelemme kaksi moduulia ja niitä vastaavat toiminnot tässä opetusohjelmassa, jossa luetellaan tiedostojen nimet ja tiedot hakemistossa.
Mikä on Pythonin hakemisto?
Hakemisto, joka tunnetaan joskus nimellä kansio, on yksikön organisaatiorakenne tietokoneen tiedostojärjestelmässä tiedostojen tai muiden kansioiden tallentamista ja paikantamista varten. Python tukee nyt useita sovellusliittymiä hakemiston sisällön luetteloimiseen. Voimme käyttää esimerkiksi funktioita Path.iterdir, os.scandir, os.walk, Path.rglob tai os.listdir.
Käytössä oleva hakemisto: gfg
Kuinka luetella tiedostoja hakemistossa Pythonissa
On olemassa useita tapoja listata kaikki tiedostot hakemistossa. Tässä artikkelissa käsittelemme alla olevia moduuleja ja niiden toimintoja hakemiston tiedostoluettelon hakemiseksi. Käsittelemme yhteensä 5 tapaa esimerkein tarkistaaksesi hakemiston tiedostoluettelon.
- Käyttämällä OS-moduuli
- Käyttämällä glob Moduuli
Listaa tiedostot hakemistossa Pythonin Os-moduulin avulla
Voimme käyttää näitä kolmea menetelmää OS-moduuli , saadaksesi luettelon hakemiston tiedostoista.
- os.listdir() Menetelmä
- os.walk() Menetelmä
- os.scandir() Menetelmä
Käytä os.listdir()-menetelmää tiedostoluettelon saamiseksi
os.listdir() menetelmä saa luettelon kaikista tietyn hakemiston tiedostoista ja hakemistoista. Oletuksena se on nykyinen hakemisto. Kansioiden ensimmäisen tason lisäksi os.listdir() ei palauta tiedostoja tai kansioita.
Syntaksi : os.listdir(polku)
Parametrit :
- Polku : Hakemiston polku
Palautustyyppi : palauttaa luettelon kaikista määritetyn polun tiedostoista ja hakemistoista
Esimerkki 1: Hanki luettelo kaikista hakemiston tiedostoista
Tässä esimerkissä käyttöjärjestelmämoduuli tuodaan vuorovaikutukseen käyttöjärjestelmän kanssa. Listdir-funktiota käytetään luettelon saamiseksi kaikista määritetyn polun tiedostoista ja hakemistoista (C://Users//Vanshi//Desktop//gfg). Tulos tulostetaan sitten ja näyttää määritetyssä paikassa olevien tiedostojen ja hakemistojen nimet.
Python 3
# import OS module> import> os> # Get the list of all files and directories> path> => ' C://Users//Vanshi//Desktop//gfg '> dir_list> => os.listdir(path)> print> (> 'Files and directories in ''> , path,> '' :'> )> # prints all files> print> (dir_list)> |
Pyspark sql
>
>
Lähtö:
Esimerkki 2: Hae kaikki tiedostot ilman kansioita
Tässä esimerkissä Python-ohjelma pyytää käyttäjää antamaan kansiopolun ja luettelee ja tulostaa kyseisessä hakemistossa olevat tiedostot käyttämällä os-moduulia hakemistovuorovaikutukseen ja tiedostojen suodattamiseen saadusta luettelosta.
Python 3
import> os> print> (> 'Python Program to print list the files in a directory.'> )> Direc> => input> (r> 'Enter the path of the folder: '> )> print> (f> 'Files in the directory: {Direc}'> )> files> => os.listdir(Direc)> # Filtering only the files.> files> => [f> for> f> in> files> if> os.path.isfile(Direc> +> '/'> +> f)]> print> (> *> files, sep> => '
'> )> |
java merkkijonomenetelmät
>
>
Esimerkki 3: Hanki vain .txt-tiedostot hakemistosta
Tässä esimerkissä Python-komentosarja käyttää os-moduulia toistaakseen tiedostoja nykyisessä hakemistossa. Se tulostaa valikoivasti vain .txt-päätteisten tiedostojen nimet ja listaa tehokkaasti hakemistossa olevat tekstitiedostot.
Python 3
# import OS> import> os> for> x> in> os.listdir():> > if> x.endswith(> '.txt'> ):> > # Prints only text file present in My Folder> > print> (x)> |
>
>
Lähtö:
os.walk()-menetelmän käyttäminen hakemistopuussa olevien tiedostojen käyttämiseen
OS.walk() luo tiedostonimiä hakemistopuussa. Tämä funktio palauttaa tiedostoluettelon puurakenteessa. Menetelmä käy läpi kaikki puun hakemistot.
Syntaksi: os.walk(ylhäältä, ylhäältä alas, virhe, seurantalinkit )
Parametrit:
- alkuun: Se on ylin hakemisto, josta haluat hakea komponenttitiedostojen ja kansioiden nimet.
- ylhäältä alas: Määrittää, että hakemistoja tarkistetaan ylhäältä alas, kun asetuksena on True. Jos tämä parametri on False, hakemistoja tarkastellaan ylhäältä alas.
- virhe: Se tarjoaa virhekäsittelijän, jos virhe havaitaan
- seurantalinkkejä : jos asetettu arvoon True, vierailee kansioissa, joihin järjestelmälinkit viittaavat
Palata: palauttaa jokaisen hakemistossa olevan tiedoston ja kansion nimen ja minkä tahansa sen alihakemiston.
Esimerkki: Hanki vain .txt-tiedostoja hakemistoon
Tässä esimerkissä Python-komentosarja käyttää os-moduulia siirtyäkseen tiedostojen läpi määritetyssä hakemistossa (C://Users//Vanshi//Desktop//gfg) ja sen alihakemistoissa. Se tunnistaa ja tulostaa tiedostojen nimet .txt-tunnisteella ja täyttää luettelomuuttujan halutuilla tekstitiedostoilla.
Python 3
# import OS module> import> os> # This is my path> path> => ' C://Users//Vanshi//Desktop//gfg '> # to store files in a list> list> => []> # dirs=directories> for> (root, dirs,> file> )> in> os.walk(path):> > for> f> in> file> :> > if> '.txt'> in> f:> > print> (f)> |
>
>
Lähtö:
os.scandir()-menetelmän käyttäminen tiedostojen luetteloimiseen hakemistossa
os.scandir() on tehokas versio os.listdir()-funktiosta. Python julkaisi sen myöhemmin, ja se on tuettu Python 3.5:lle ja uudemmille.
Syntaksi: os.scandir(polku)
kytkinkotelo javaParametri:
- Polku- Hakemiston polku.
Palautustyyppi: palauttaa os.DirEntry-objektin iteraattorin.
Esimerkki: Listaa kaikki hakemiston tiedostot ja hakemistot.
Tässä esimerkissä Python-komentosarja käyttää os-moduulia tiedostojen ja hakemistojen luetteloimiseen määritetyssä polussa (C://Users//Vanshi//Desktop//gfg). Se käyttää os.scandir()-toimintoa hankkimaan iteraattorin os.DirEntry-objekteista, jotka edustavat hakemiston merkintöjä.
Python 3
# import OS module> import> os> # This is my path> path> => ' C://Users//Vanshi//Desktop//gfg '> # Scan the directory and get> # an iterator of os.DirEntry objects> # corresponding to entries in it> # using os.scandir() method> obj> => os.scandir()> # List all files and directories in the specified path> print> (> 'Files and Directories in '% s':'> %> path)> for> entry> in> obj:> > if> entry.is_dir()> or> entry.is_file():> > print> (entry.name)> |
>
>
Lähtö:
Listaa tiedostot hakemistossa Pythonin glob-moduulin avulla
The loraus moduuli hakee tiedostot/polunimet, jotka vastaavat määritettyä mallia. Alla on tapoja, joilla voimme luetteloida tiedostoja hakemistoon glob-moduulin avulla:
- loraus() Menetelmä
- iglob() menetelmä
glob()-menetelmän avulla saat kaikki tiedostot hakemistoon
Kanssa loraus , voimme käyttää jokerimerkkejä (*, ?, [alueet]) tehdä polun hakemisesta yksinkertaisempaa ja kätevämpää.
Syntaksi: glob.glob(polkunimi, *, recursive=False)
Parametrit:
- polun nimi : Hakemiston polku tai vastaava malli.
- rekursiivinen (Valinnainen): Boolen parametri (oletusarvo on Väärä ), joka osoittaa, tuleeko haun olla rekursiivinen eli sisältääkö sen alihakemistoja.
Palautukset:
- Luettelo vastaavista tiedostopoluista
Esimerkki: Python-tiedostojen täsmäys ja tulostus glob()-menetelmällä
Python 3
missä on kannettavan tietokoneen näppäimistön insert-näppäin
import> glob> # This is my path> path> => 'C:UsersVanshiDesktopgfg'> # Using '*' pattern> print> (> '
Named with wildcard *:'> )> for> files> in> glob.glob(path> +> '*'> ):> > print> (files)> # Using '?' pattern> print> (> '
Named with wildcard ?:'> )> for> files> in> glob.glob(path> +> '?.txt'> ):> > print> (files)> # Using [0-9] pattern> print> (> '
Named with wildcard ranges:'> )> for> files> in> glob.glob(path> +> '/*[0-9].*'> ):> > print> (files)> |
>
>
Lähtö:
iglob()-menetelmän käyttäminen tiedostojen luetteloimiseen hakemistossa
iglob() -menetelmää voidaan käyttää tiedostonimien tulostamiseen rekursiivisesti, jos rekursiivisen parametrin arvo on True. Tätä käytetään suurille hakemistoille, koska se on tehokkaampi kuin glob()-menetelmä.
Syntaksi: glob.iglob(polkunimi, *, recursive=False)
Parametri:
- polkunimi = Hakemiston polku.
- rekursiivinen (valinnainen)= Boolen parametri (oletusarvo on Väärä ), joka osoittaa, tuleeko haun olla rekursiivinen eli sisältääkö sen alihakemistoja.
Palautukset: Vastaavien tiedostopolkujen iteraattori
Esimerkki: Tulosta polut, jotka vastaavat määritettyä kuviota hakemistossa.
Tässä esimerkissä Python-komentosarja käyttää glob-moduulia etsimään ja tulostamaan polkuja, jotka vastaavat määritettyä mallia (C:UsersVanshiDesktopgfg***.txt). Se käyttää glob.iglob()-funktiota palauttamaan iteraattorin, jota käytetään sitten tulostamaan kaikkien määritetyssä hakemistossa ja sen alihakemistoissa olevien tekstitiedostojen polut.
Python 3
import> glob> # This is my path> path> => 'C:UsersVanshiDesktopgfg***.txt'> # It returns an iterator which will> # be printed simultaneously.> print> (> '
Using glob.iglob()'> )> # Prints all types of txt files present in a Path> for> file> in> glob.iglob(path, recursive> => True> ):> > print> (> file> )> |
>
ascii javassa
>
Lähtö:
Nämä ovat 5 tapaa, joilla voit saada tietoja hakemiston tiedostoista ja hakemistoista. Python on tarjonnut useita sisäänrakennettuja menetelmiä, joiden avulla voit tietää hakemistossa olevat tiedostot. Tämä opetusohjelma osoitti helppoja menetelmiä esimerkein, joiden avulla voit ymmärtää, miten tiedostoluettelot saadaan os-moduulilla ja glob-moduulilla.
Samanlainen lukee:
- Listaa tiedostot hakemistoon, jossa on tunniste
- Listaa kaikki tietyn tyyppiset tiedostot hakemistossa Pythonilla
- Hakemistojen ja tiedostojen luettelointi Pythonissa
- Hanki luettelo tiedostoista hakemistossa koossa
- Tiedostojen käsittely Pythonissa