logo

Python – Seznam souborů v adresáři

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



Soubory v adresáři

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.

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