logo

Python - failų sąrašas kataloge

Kartais dirbant su failais Python iškyla problema, kaip gauti visus failus į katalogą. Šiame straipsnyje apžvelgsime įvairius būdus kaip išvardyti visų failų pavadinimus kataloge Python.

Failų operacijų atlikimas yra privalomas programuotojų įgūdis. Mokymasis dirbti su failais naudojant Python padeda tvarkyti failus, integruoti failus su programomis, kurti realaus pasaulio programas ir t. t. Apžvelgsime pagrindinę visų konkrečiame kataloge esančių failų sąrašo sąvoką.



Šioje mokymo programoje, skirtoje failų pavadinimų ir informacijos įtraukimui į katalogą, apžvelgsime du modulius ir atitinkamas jų funkcijas.

Kas yra Python katalogas?

Katalogas, kartais žinomas kaip aplankas, yra vieneto organizacinė struktūra kompiuterio failų sistemoje, skirta failams ar daugiau aplankų saugoti ir rasti. Python dabar palaiko keletą API, kad pateiktų katalogo turinį. Pavyzdžiui, galime naudoti funkcijas Path.iterdir, os.scandir, os.walk, Path.rglob arba os.listdir.

Naudojamas katalogas: gfg



Failai kataloge

Kaip įtraukti failus į Python katalogą

Yra keletas būdų, kaip įtraukti visus failus į katalogą. Šiame straipsnyje aptarsime toliau nurodytus modulius ir jų funkcijas, kad būtų galima gauti failų sąrašą kataloge. Iš viso apžvelgsime 5 būdus su pavyzdžiais, kaip patikrinti failų sąrašą kataloge.

  1. Naudojant OS modulis
  2. Naudojant glob modulis

Išvardykite failus kataloge naudodami Python OS modulį

Galime naudoti šiuos 3 metodus OS modulis , norėdami gauti kataloge esančių failų sąrašą.



  • os.listdir() Metodas
  • os.walk() Metodas
  • os.scandir() Metodas

Norėdami gauti failų sąrašą, naudokite os.listdir() metodą

os.listdir() metodas gauna visų failų ir katalogų sąrašą nurodytame kataloge. Pagal numatytuosius nustatymus tai yra dabartinis katalogas. Už pirmojo aplankų lygio os.listdir() nepateikia jokių failų ar aplankų.

Sintaksė : os.listdir(path)

Parametrai :

  • Kelias : Katalogo kelias

Grąžinimo tipas : grąžina visų nurodytame kelyje esančių failų ir katalogų sąrašą

1 pavyzdys: gaukite visų kataloge esančių failų sąrašą

Šiame pavyzdyje OS modulis importuojamas sąveikauti su operacine sistema. Funkcija listdir naudojama visų failų ir katalogų sąrašui gauti nurodytame kelyje (C://Users//Vanshi//Desktop//gfg). Tada išspausdinamas rezultatas, kuriame rodomi nurodytoje vietoje esančių failų ir katalogų pavadinimai.

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)>

pagrindiniai java interviu klausimai

>

>

Išvestis:

2 pavyzdys: Gaukite visus failus ir jokių aplankų

Šiame pavyzdyje Python programa ragina vartotoją nurodyti aplanko kelią, išvardija ir išspausdina tame kataloge esančius failus, naudodama OS modulį sąveikai su katalogais ir failų filtravimui iš gauto sąrašo.

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>=>' '>)>

>

>

sunumeruoti abėcėlę

3 pavyzdys: gaukite tik .txt failus iš katalogo

Šiame pavyzdyje Python scenarijus naudoja OS modulį, kad galėtų kartoti failus dabartiniame kataloge. Ji pasirinktinai spausdina tik failų pavadinimus, kurie baigiasi .txt, efektyviai išvardijant kataloge esančius tekstinius failus.

Python3




# import OS> import> os> for> x>in> os.listdir():> >if> x.endswith(>'.txt'>):> ># Prints only text file present in My Folder> >print>(x)>

>

>

Išvestis:

os.walk() metodo naudojimas failams pasiekti katalogų medyje

OS.walk() generuoja failų pavadinimus katalogų medyje. Ši funkcija grąžina failų sąrašą medžio struktūroje. Metodas pereina visus medžio katalogus.

Sintaksė: os.walk(iš viršaus, iš viršaus į apačią, klaida, sekančios nuorodos )

Parametrai:

  • viršuje: Tai yra aukščiausias katalogas, iš kurio norite gauti komponentų failų ir aplankų pavadinimus.
  • iš viršaus žemyn: Nurodoma, kad katalogai turi būti nuskaitomi iš viršaus į apačią, kai nustatyta į True. Jei šis parametras yra klaidingas, katalogai bus tiriami iš viršaus į apačią.
  • klaida: Ji suteikia klaidų tvarkyklę, jei įvyksta klaida
  • sekančios nuorodos : jei nustatyta į True, lankosi sistemos nuorodų nurodytuose aplankuose

Grąžinti: grąžina kiekvieno failo ir aplanko pavadinimą kataloge ir bet kuriame jo pakatalogyje.

Pavyzdys: gaukite tik .txt failus kataloge

Šiame pavyzdyje Python scenarijus naudoja OS modulį, kad galėtų pereiti per failus nurodytame kataloge (C://Users//Vanshi//Desktop//gfg) ir jo pakatalogiuose. Jis identifikuoja ir išspausdina failų pavadinimus su plėtiniu .txt, sąrašo kintamąjį užpildydamas norimais tekstiniais failais.

Python3


k artimiausias kaimynas



# 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)>

>

>

Išvestis:

os.scandir() metodo naudojimas failams kataloge išvardyti

os.scandir() yra efektyvi funkcijos os.listdir() versija. Vėliau jį išleido Python ir palaiko Python 3.5 ir naujesnes versijas.

Sintaksė: os.scandir(path)

Parametras:

  • Kelias- Katalogo kelias.

Grąžinimo tipas: grąžina os.DirEntry objekto iteratorių.

Pavyzdys: surašykite visus kataloge esančius failus ir katalogus.

Šiame pavyzdyje Python scenarijus naudoja OS modulį, kad pateiktų failų ir katalogų sąrašą nurodytame kelyje (C://Users//Vanshi//Desktop//gfg). Jis naudoja os.scandir(), kad gautų os.DirEntry objektų, reprezentuojančių įrašus kataloge, iteratorių.

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)>

>

>

Išvestis:

išskyrus

Failų sąrašas kataloge, naudojant Python glob modulį

The glob modulis nuskaito failų / kelių pavadinimus, atitinkančius nurodytą šabloną. Žemiau pateikiami būdai, kuriais galime įtraukti failus į katalogą naudodami glob modulį:

  • glob () Metodas
  • iglob() metodas

Naudodami metodą glob() norėdami gauti visus failus į katalogą

Su glob , galime naudoti pakaitos simbolius (*, ?, [diapazonas]) kad kelio paieška būtų paprastesnė ir patogesnė.

Sintaksė: glob.glob(kelio pavadinimas, *, recursive=False)

Parametrai:

  • kelio pavadinimas : Atitinkamo katalogo arba šablono kelias.
  • rekursyvus (Pasirenkama): loginis parametras (numatytoji vertė nustatyta į Netiesa ), kuris nurodo, ar paieška turi būti rekursinė, t. y. ar joje turi būti pakatalogių.

Grąžinimai:

  • Atitinkamų failų kelių sąrašas

Pavyzdys: Python failų suderinimas ir spausdinimas naudojant glob() metodą

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)>

>

>

Išvestis:

iglob() metodo naudojimas failams kataloge išvardyti

iglob() metodas gali būti naudojamas failų pavadinimams spausdinti rekursyviai, jei rekursinis parametras nustatytas į True. Tai naudojama dideliems katalogams, nes jis yra efektyvesnis nei glob() metodas.

Sintaksė: glob.iglob(kelio pavadinimas, *, recursive=False)

Parametras:

  • kelio pavadinimas = Katalogo kelias.
  • rekursyvus (nebūtina)= Būlio parametras (numatytoji vertė nustatyta į Netiesa ), kuris nurodo, ar paieška turi būti rekursinė, t. y. ar joje turi būti pakatalogių.

Grąžinimai: Atitinkamų failų kelių iteratorius

Pavyzdys: Spausdinti kelius, atitinkančius nurodytą šabloną kataloge.

Šiame pavyzdyje Python scenarijus naudoja glob modulį, kad surastų ir spausdintų kelius, atitinkančius nurodytą šabloną (C:UsersVanshiDesktopgfg***.txt). Jis naudoja glob.iglob(), kad grąžintų iteratorių, kuris vėliau naudojamas spausdinti visų tekstinių failų, esančių nurodytame kataloge ir jo pakatalogiuose, kelius.

Python3

mysql įterpimas į




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>)>

>

>

Išvestis:

Tai yra 5 būdai, kuriais galite gauti informacijos apie kataloge esančius failus ir katalogus. „Python“ pateikė kelis integruotus metodus, kuriuos galite naudoti norėdami sužinoti kataloge esančius failus. Šioje pamokoje buvo parodyti paprasti būdai su pavyzdžiais, kaip suprasti, kaip gauti failų sąrašus naudojant OS modulį ir glob modulį.

Panašiai rašoma:

  • Išvardykite failus kataloge su plėtiniu
  • Išvardykite visus tam tikro tipo failus kataloge naudodami Python
  • Katalogų ir failų sąrašas Python
  • Gaukite failų sąrašą kataloge su dydžiu
  • Failų tvarkymas Python