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