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
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.
- Použitím Modul OS
- 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