Python – zoznam súborov v adresári

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

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

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:

  • 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




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:

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