logo

Python – zoznam súborov v adresári

Niekedy pri práci so súbormi v Pythone vzniká problém, ako dostať všetky súbory do adresára. V tomto článku sa budeme zaoberať rôznymi spôsobmi ako vypísať všetky názvy súborov v adresári v Pythone.

Vykonávanie operácií so súbormi je pre programátorov nevyhnutnosťou. Naučiť sa operácie so súbormi pomocou Pythonu pomáha pri správe súborov, integrácii súborov s vašimi programami, vytváraní programov v reálnom svete atď. Budeme sa venovať najzákladnejšiemu konceptu zoznamu všetkých súborov prítomných v konkrétnom adresári.



V tomto návode sa budeme venovať dvom modulom a ich príslušným funkciám výpisu názvov súborov a podrobností v adresári.

Čo je adresár v Pythone?

Adresár, niekedy známy ako priečinok, je organizačná štruktúra jednotky v súborovom systéme počítača na ukladanie a lokalizáciu súborov alebo viacerých priečinkov. Python teraz podporuje niekoľko rozhraní API na zobrazenie obsahu adresára. Môžeme napríklad použiť funkcie Path.iterdir, os.scandir, os.walk, Path.rglob alebo os.listdir.

Používaný adresár: gfg



Súbory v adresári

Ako zobraziť zoznam súborov v adresári v Pythone

Existuje niekoľko spôsobov, ako zobraziť zoznam všetkých súborov v adresári. V tomto článku budeme diskutovať o nižšie uvedených moduloch a ich funkciách na získanie zoznamu súborov v adresári. Na príkladoch preberieme celkom 5 spôsobov, ako skontrolovať zoznam súborov v adresári.

  1. Použitím Modul OS
  2. Použitím modul glob

Zoznam súborov v adresári pomocou modulu Os v Pythone

Môžeme použiť tieto 3 metódy modul OS , aby ste získali zoznam súborov v adresári.



  • os.listdir() Metóda
  • os.walk() Metóda
  • os.scandir() Metóda

Pomocou metódy os.listdir() získate zoznam súborov

os.listdir() získa zoznam všetkých súborov a adresárov v zadanom adresári. V predvolenom nastavení je to aktuálny adresár. Okrem prvej úrovne priečinkov funkcia os.listdir() nevracia žiadne súbory ani priečinky.

Syntax : os.listdir(cesta)

Parametre :

  • Cesta : Cesta k adresáru

Typ návratu : vráti zoznam všetkých súborov a adresárov v zadanej ceste

Príklad 1: Získajte zoznam všetkých súborov v adresári

V tomto príklade je modul os importovaný na interakciu s operačným systémom. Funkcia listdir sa používa na získanie zoznamu všetkých súborov a adresárov v zadanej ceste (C://Users//Vanshi//Desktop//gfg). Výsledok sa potom vytlačí so zobrazením názvov súborov a adresárov prítomných v určenom umiestnení.

Python3




# 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)>

bajtové pole na reťazec

>

>

Výkon:

Príklad 2: Získajte všetky súbory a žiadne priečinky

V tomto príklade program Python vyzve používateľa, aby zadal cestu k priečinku a vypíše a vytlačí súbory v tomto adresári, pričom využíva modul os na interakciu s adresármi a filtrovanie súborov zo získaného zoznamu.

Python3




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 generátor náhodných čísel
>

Príklad 3: Získajte z adresára iba súbory „.txt“.

V tomto príklade skript Python využíva modul os na iteráciu cez súbory v aktuálnom adresári. Selektívne vytlačí iba názvy súborov končiace príponou .txt, čím efektívne zobrazí textové súbory nachádzajúce sa v adresári.

Python3




# import OS> import> os> for> x>in> os.listdir():> >if> x.endswith(>'.txt'>):> ># Prints only text file present in My Folder> >print>(x)>

>

>

Výkon:

Použitie metódy os.walk() na prístup k súborom v strome adresárov

OS.walk() generuje názvy súborov v strome adresárov. Táto funkcia vráti zoznam súborov v stromovej štruktúre. Metóda prechádza cez všetky adresáre v strome.

Syntax: os.walk(top, topdown, onerror, followlinks )

Parametre:

  • hore: Je to najvyšší adresár, z ktorého chcete získať názvy súborov a priečinkov komponentov.
  • zhora nadol: Určuje, že pri nastavení na hodnotu True by sa adresáre mali skenovať zhora nadol. Ak je tento parameter False, adresáre budú preskúmané zhora nadol.
  • onerror: Poskytuje obsluhu chýb, ak sa vyskytne chyba
  • sledovacie odkazy : ak je nastavené na hodnotu True, navštívi priečinky, na ktoré odkazujú systémové odkazy

Návrat: vráti názov každého súboru a priečinka v adresári a ľubovoľnom z jeho podadresárov.

Príklad: Získajte iba súbory „.txt“ v adresári

V tomto príklade skript Python používa modul os na prechádzanie cez súbory v zadanom adresári (C://Users//Vanshi//Desktop//gfg) a jeho podadresároch. Identifikuje a vytlačí názvy súborov s príponou .txt, pričom vyplní premennú zoznamu požadovanými textovými súbormi.

Python3




# 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)>

>

>

Výkon:

Použitie metódy os.scandir() na zoznam súborov v adresári

os.scandir() je efektívna verzia funkcie os.listdir(). Neskôr ho vydal Python a je podporovaný pre Python 3.5 a vyšší.

Syntax: os.scandir(cesta)

Parameter:

powershell viacriadkový komentár
  • cesta- Cesta k adresáru.

Typ návratu: vráti iterátor objektu os.DirEntry.

Príklad: Zoznam všetkých súborov a adresárov v adresári.

V tomto príklade skript Python využíva modul os na zoznam súborov a adresárov v zadanej ceste (C://Users//Vanshi//Desktop//gfg). Používa os.scandir() na získanie iterátora objektov os.DirEntry reprezentujúcich položky v adresári.

Python3




# 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)>

>

>

Výkon:

Zoznam súborov v adresári pomocou modulu glob v Pythone

The glob modul načíta súbory/názvy ciest zodpovedajúce zadanému vzoru. Nižšie sú uvedené spôsoby, ako môžeme zobraziť zoznam súborov v adresári pomocou modulu glob:

  • glob() Metóda
  • iglob() metóda

Použitie metódy glob() na získanie všetkých súborov v adresári

S glob , môžeme použiť zástupné znaky (*, ?, [rozsahy]) aby bolo vyhľadávanie cesty jednoduchšie a pohodlnejšie.

Syntax: glob.glob(názov cesty, *, rekurzívny=False)

Parametre:

  • názov cesty : Cesta k adresáru alebo vzor, ​​ktorý sa má zhodovať.
  • rekurzívne (Voliteľné): Booleovský parameter (predvolená hodnota je nastavená na Nepravdivé ), ktorá označuje, či má byť vyhľadávanie rekurzívne, t. j. či má zahŕňať podadresáre.

Vrátenie:

  • Zoznam zodpovedajúcich ciest k súborom

Príklad: Priraďovanie a tlač súborov Python pomocou metódy glob().

Python3


riadok vs stĺpec



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)>

>

>

Výkon:

Použitie metódy iglob() na zoznam súborov v adresári

iglob() metóda môže byť použitá na tlač názvov súborov rekurzívne, ak je rekurzívny parameter nastavený na True. Používa sa pre veľké adresáre, pretože je efektívnejšia ako metóda glob().

Syntax: glob.iglob(názov cesty, *, rekurzívny=False)

Parameter:

  • názov cesty = Cesta k adresáru.
  • rekurzívne (voliteľné)= Booleovský parameter (predvolená hodnota je nastavená na Nepravdivé ), ktorá označuje, či má byť vyhľadávanie rekurzívne, t. j. či má zahŕňať podadresáre.

Vrátenie: Iterátor zhodných ciest k súborom

Príklad: Vytlačte cesty zodpovedajúce zadanému vzoru v adresári.

V tomto príklade skript Python využíva modul glob na nájdenie a vytlačenie ciest zodpovedajúcich zadanému vzoru (C:UsersVanshiDesktopgfg***.txt). Používa glob.iglob() na vrátenie iterátora, ktorý sa potom použije na vytlačenie ciest všetkých textových súborov prítomných v zadanom adresári a jeho podadresároch.

Python3




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>)>

>

>

Výkon:

homogénna zmes

Toto je 5 spôsobov, ktoré môžete použiť na získanie podrobností o súboroch a adresároch v adresári. Python poskytuje viacero vstavaných metód, ktoré môžete použiť na zistenie súborov prítomných v adresári. Tento tutoriál ukázal jednoduché metódy s príkladmi na pochopenie toho, ako získať výpisy súborov pomocou modulu os a modulu glob.

Podobné znie:

  • Zoznam súborov v adresári s príponou
  • Vypíšte všetky súbory určitého typu v adresári pomocou Pythonu
  • Výpis adresárov a súborov v Pythone
  • Získajte zoznam súborov v adresári s veľkosťou
  • Spracovanie súborov v Pythone