Někdy při práci se soubory v Pythonu nastává problém, jak dostat všechny soubory do adresáře. V tomto článku se budeme zabývat různými způsoby jak vypsat všechny názvy souborů v adresáři v Pythonu.
Provádění operací se soubory je pro programátory nezbytností. Naučit se operace se soubory pomocí Pythonu pomáhá při správě souborů, integraci souborů s vašimi programy, vytváření reálných programů atd. Pokryjeme nejzákladnější koncept výpisu všech souborů přítomných v konkrétním adresáři.
V tomto tutoriálu se budeme zabývat dvěma moduly a jejich příslušnými funkcemi o výpisu názvů souborů a podrobností v adresáři.
Co je adresář v Pythonu?
Adresář, někdy známý jako složka, je organizační struktura jednotky v systému souborů počítače pro ukládání a lokalizaci souborů nebo více složek. Python nyní podporuje několik rozhraní API pro výpis obsahu adresáře. Můžeme například použít funkce Path.iterdir, os.scandir, os.walk, Path.rglob nebo os.listdir.
Používaný adresář: gfg

Jak vypsat soubory v adresáři v Pythonu
Existuje několik způsobů, jak vypsat všechny soubory v adresáři. V tomto článku probereme níže uvedené moduly a jejich funkce pro načtení seznamu souborů v adresáři. Na příkladech probereme celkem 5 způsobů, jak zkontrolovat seznam souborů v adresáři.
- Použitím Modul OS
- Použitím modul glob
Seznam souborů v adresáři pomocí modulu Os v Pythonu
Můžeme použít tyto 3 metody OS modul , abyste získali seznam souborů v adresáři.
- os.listdir() Metoda
- os.walk() Metoda
- os.scandir() Metoda
Pomocí metody os.listdir() získáte seznam souborů
os.listdir() metoda získá seznam všech souborů a adresářů v zadaném adresáři. Ve výchozím nastavení je to aktuální adresář. Kromě první úrovně složek os.listdir() nevrací žádné soubory ani složky.
Syntax : os.listdir(cesta)
Parametry :
- Cesta : Cesta k adresáři
Typ návratu : vrátí seznam všech souborů a adresářů v zadané cestě
Příklad 1: Získejte seznam všech souborů v adresáři
V tomto příkladu je modul os importován pro interakci s operačním systémem. Funkce listdir se používá k získání seznamu všech souborů a adresářů v zadané cestě (C://Users//Vanshi//Desktop//gfg). Výsledek se poté vytiskne a zobrazí názvy souborů a adresářů přítomných v zadaném umístění.
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)> |
tlačítko tkinter
>
>
Výstup:

Příklad 2: Získejte všechny soubory a žádné složky
V tomto příkladu program Python vyzve uživatele k zadání cesty ke složce a vypíše a vytiskne soubory v tomto adresáři s využitím modulu os pro interakci s adresáři a filtrování souborů ze získaného seznamu.
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>=>'
'>)> |
>
>
Příklad 3: Získejte z adresáře pouze soubory „.txt“.
V tomto příkladu skript Python využívá modul os k iteraci souborů v aktuálním adresáři. Selektivně vytiskne pouze názvy souborů s příponou .txt a efektivně vypíše textové soubory přítomné v adresáři.
Python3
# import OS> import> os> for> x>in> os.listdir():> >if> x.endswith(>'.txt'>):> ># Prints only text file present in My Folder> >print>(x)> |
>
Greatandhra
>
Výstup:

Použití metody os.walk() pro přístup k souborům ve stromu adresářů
OS.walk() generuje názvy souborů ve stromu adresářů. Tato funkce vrací seznam souborů ve stromové struktuře. Metoda prochází všechny adresáře ve stromu.
Syntax: os.walk(top, topdown, onerror, followlinks )
Parametry:
- horní: Je to nejvyšší adresář, ze kterého chcete získat názvy souborů a složek složek.
- vzhůru nohama: Určuje, že při nastavení na hodnotu True by se adresáře měly skenovat shora dolů. Pokud je tento parametr False, budou adresáře prozkoumány shora dolů.
- onerror: Poskytuje obslužnou rutinu chyb, pokud dojde k chybě
- následující odkazy : pokud je nastaveno na hodnotu True, navštíví složky, na které odkazují systémové odkazy
Vrátit se: vrátí název každého souboru a složky v adresáři a všech jeho podadresářích.
Příklad: Získejte v adresáři pouze soubory „.txt“.
V tomto příkladu skript Python používá modul os k procházení soubory v určeném adresáři (C://Users//Vanshi//Desktop//gfg) a jeho podadresářích. Identifikuje a vytiskne názvy souborů s příponou .txt a naplní proměnnou seznamu požadovanými textovými soubory.
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)> |
>
řazení java arraylist
>
Výstup:

Použití metody os.scandir() k výpisu souborů v adresáři
os.scandir() je efektivní verze funkce os.listdir(). Později byl vydán Pythonem a je podporován pro Python 3.5 a vyšší.
Syntax: os.scandir(cesta)
Parametr:
- Cesta- Cesta k adresáři.
Typ vrácení: vrací iterátor objektu os.DirEntry.
Příklad: Seznam všech souborů a adresářů v adresáři.
V tomto příkladu skript Python využívá modul os k výpisu souborů a adresářů v zadané cestě (C://Users//Vanshi//Desktop//gfg). Využívá os.scandir() k získání iterátoru objektů os.DirEntry představujících položky v adresáři.
Python3
znak na řetězec v jazyce Java
# 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ýstup:

Seznam souborů v adresáři Pomocí modulu glob v Pythonu
The glob modul načte názvy souborů/cest odpovídajících zadanému vzoru. Níže jsou uvedeny způsoby, jak můžeme vypsat soubory v adresáři pomocí modulu glob:
- glob() Metoda
- iglob() metoda
Použití metody glob() k získání všech souborů v adresáři
S glob , můžeme použít zástupné znaky (*, ?, [rozsahy]) aby bylo vyhledávání cesty jednodušší a pohodlnější.
Syntax: glob.glob(název cesty, *, rekurzivní=nepravda)
Parametry:
- název cesty : Cesta k adresáři nebo vzor, který se má shodovat.
- rekurzivní (Volitelné): Booleovský parametr (výchozí hodnota je nastavena na Nepravdivé ), který udává, zda má být vyhledávání rekurzivní, tj. zda má zahrnovat podadresáře.
Vrácení:
- Seznam odpovídajících cest k souborům
Příklad: Porovnávání a tisk souborů Python pomocí metody 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)> |
>
řetězec na dlouhý
>
Výstup:

Použití metody iglob() k zobrazení seznamu souborů v adresáři
iglob() metodu lze použít k rekurzivnímu tisku jmen souborů, pokud je parametr rekurzivní nastaven na hodnotu True. To se používá pro velké adresáře, protože je efektivnější než metoda glob().
Syntax: glob.iglob(název cesty, *, rekurzivní=nepravda)
Parametr:
- cesta = Cesta k adresáři.
- rekurzivní (Volitelné)= Booleovský parametr (výchozí hodnota je nastavena na Nepravdivé ), který udává, zda má být vyhledávání rekurzivní, tj. zda má zahrnovat podadresáře.
Vrácení: Iterátor odpovídajících cest k souboru
Příklad: Vytiskněte cesty odpovídající zadanému vzoru v adresáři.
V tomto příkladu skript Python využívá modul glob k vyhledání a tisku cest odpovídajících zadanému vzoru (C:UsersVanshiDesktopgfg***.txt). Využívá glob.iglob() k vrácení iterátoru, který se pak použije k vytištění cest všech textových souborů přítomných v určeném adresáři a jeho podadresářích.
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ýstup:

Toto je 5 způsobů, jak můžete získat podrobnosti o souborech a adresářích v adresáři. Python poskytuje několik vestavěných metod, které můžete použít ke zjištění souborů přítomných v adresáři. Tento tutoriál ukázal jednoduché metody s příklady, které vám pomohou pochopit, jak získat výpisy souborů pomocí modulu os a modulu glob.
Podobné zní:
- Seznam souborů v adresáři s příponou
- Vypište všechny soubory určitého typu v adresáři pomocí Pythonu
- Výpis adresářů a souborů v Pythonu
- Získejte seznam souborů v adresáři s velikostí
- Práce se soubory v Pythonu