Jak seznam souborů v adresáři pomocí Pythonu?

V tomto výukovém programu, jsme pokrývají vše, co potřebujete vědět o tom, jak seznam souborů v adresáři pomocí Python.

Python je univerzální jazyk, který se používá v různých oblastech, jako je věda o datech, strojové učení a dokonce i ve vývoji webu. Zdá se, že v aplikaci jazyka Python není žádné omezení.

zdá se tedy, že Python může být použit pro seznam souborů a adresářů v jakémkoli systému., Cílem tohoto článku je osvětlit čtenáře o způsobech, jak seznamovat soubory v systému pomocí Pythonu.

Seznam Všech Souborů v Adresáři Pomocí Python

Za účelem interakce s adresáře v systému pomocí Pythonu, os knihovna je používá.

1. Pomocí knihovny “ os “

metoda, kterou budeme cvičit pro náš motiv, je listdir (). Jak název napovídá, používá se k seznamu položek v adresářích.,

# Importing the os libraryimport os# The path for listing itemspath = '.'# The list of itemsfiles = os.listdir(path)# Loop to print each filename separatelyfor filename in files:print(filename)

Výstup:

game_file.pyhi-lo_pygame.pyJournaldevlist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp

uživatelé Linuxu může snadno zápas nad výstupem pomocí standardního ls příkaz v terminálu.

Položky Seznamu pomocí “ ls “ příkaz

Jak můžeme vidět výstupy jednotlivých metod zápasy.

2., Pomocí glob‘ knihovna

glob je většinou názvem pattern matching knihovny, ale to může být použit, aby se seznam položek v aktuálním adresáři:

Výstup:

game_file.pyhi-lo_pygame.pyJournaldevlist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp

zástupný znak '*' se používá, aby odpovídaly všechny položky v aktuálním adresáři. Protože chceme zobrazit položky aktuálního adresáře,musíme vypnout rekurzivní povahu funkce glob().

3., Seznam pouze soubory v aktuálním adresáři

ve výše uvedených metodách, python kód vracel všechny položky v aktuálním adresáři bez ohledu na jejich povahu. Soubory můžeme extrahovat pouze pomocí funkce path.isfile() uvnitř knihovny os.

výstup:

game_file.pyhi-lo_pygame.pylist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp

ve výše uvedeném fragmentu kódu se porozumění seznamu používá k odfiltrování pouze těch položek, které jsou ve skutečnosti souborem.,

Další klíčovou věc k poznámce je, že výše uvedený kód nefunguje pro jiné adresáře, jako variabilní 'f' není absolutní cesta, ale relativní cestu k aktuálnímu adresáři.

Seznam Všech Souborů v Adresáři Rekurzivně

chcete-li tisknout soubory uvnitř adresáře a jeho podadresářů, musíme procházet je rekurzivně.

1. Pomocí knihovny “ os “

pomocí metody walk() můžeme procházet každý podadresář v adresáři jeden po druhém.,

výstup:

metodaos.walk() jednoduše sleduje každý podadresář a ve výchozím nastavení extrahuje soubory shora dolů. Existují tři iterátory používají pro jde přes výstup os.walk() funkce:

  • path – Tato proměnná obsahuje přítomen adresář funkce je pozorovat během určité iterace
  • folders – Tato proměnná je seznam adresářů uvnitř 'path' adresář.,
  • files – seznam souborů uvnitř adresáře 'path'.

join() metoda se používá pro spojování název souboru s jeho nadřazený adresář, nám poskytuje relativní cestu k souboru.

2. Pomocí knihovny „glob“

podobně jako výše uvedený postup může glob rekurzivně navštívit každý adresář a extrahovat všechny položky a vrátit je.,

Výstup:

'**' symbol použitý spolu s proměnné path říká, glob() funkce tak, aby odpovídala soubory do libovolné podadresáře. říká funkci, aby odpovídala všem položkám v adresáři.

Protože chceme extrahovat pouze soubory v kompletní adresář, můžeme odfiltrovat soubory pomocí isfile() funkce použita dříve.

seznam všech podadresářů v adresáři

místo výpisu souborů můžeme uvést všechny podadresáře přítomné v konkrétním adresáři.,

Výstup:

./Documents/Journaldev

menší rozdíl mezi výpis souborů a adresářů je výběr iterator během procesu os.walk() funkce. U souborů iterujeme přes proměnnou soubory. Zde se smyčka přes proměnnou složky.

seznam souborů v adresáři s absolutní cestou

jakmile víme, jak seznamovat soubory v adresáři, zobrazení absolutní cesty je hračka. Metodaabspath() nám poskytuje absolutní cestu k souboru.,

Výstup:

Jedna věc k poznámce, zde je, že abspath() musí být uvedeny s relativní cestu k souboru a to je účel join() funkce.

seznam souborů v adresáři odpovídajícími vzory

existuje několik způsobů, jak odfiltrovat názvy souborů odpovídající určitému vzoru. Pojďme projít každou z nich jeden po druhém.

1. Použití ‚fnmatch‘ knihovny

jak název napovídá, fnmatch je souborový vzor odpovídající knihovna., Pomocí fnmatch s našimi standardními knihovnami pro extrahování souborů můžeme tyto soubory odfiltrovat podle konkrétního vzoru.

Výstup:

List of files containing "file" in them./Documents/game_file.py./Documents/list_files1.py./Documents/list_files.py

fnmatch() funkce má dva parametry, názvem následuje vzor, které mají být uzavřeno. Ve výše uvedeném kódu se podíváme na všechny soubory obsahující slovo file v nich.

2. Použití knihovny „glob“

, jak jsme již zmínili,glob's primárním účelem je shoda názvů souborů.,

výstup:

./Documents/list_files1.py

výše uvedený vzor odpovídající regulárnímu výrazu '**/**.*' lze vysvětlit jako:

3. Pomocí knihovny „pathlib“

pathlib následuje objektově orientovaný způsob interakce se souborovým systémem. Funkce rglob() uvnitř knihovny lze použít k rekurzivnímu extrahování seznamu souborů prostřednictvím určitého objektu cesty.

tento seznam souborů lze filtrovat pomocí vzoru ve funkci rglob().,

Výstup:

Documents/my_program.cppDocuments/Journaldev/mastermind.py

výše uvedený fragment kódu se používá k zobrazení seznamu všech souborů začínající na písmeno 'm'.

seznam souborů v adresáři s konkrétní příponou

výpis souborů s konkrétní příponou v Pythonu je poněkud podobný přizpůsobení vzoru. Za tímto účelem musíme vytvořit vzor s ohledem na příponu souboru.

Výstup:

fnmatch() funkce filtruje ty soubory, které končí s '.py', který je python soubory., Pokud chceme extrahovat soubory s různými rozšířeními, musíme tuto část kódu změnit. Například pro načtení pouze souborů c++ musí být použito '.cpp'.

to shrnuje způsoby, jak načíst seznam souborů v adresáři pomocí Pythonu.

závěr

existuje několik způsobů, jak vyřešit jakýkoli problém po ruce a nejvhodnější není vždy odpověď. S ohledem na tento článek, Python programátor si musí být vědom každý způsob, jak můžeme seznam souborů v adresáři.

Share

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *