logo

Python – seznam datotek v imeniku

Včasih se med delom z datotekami v Pythonu pojavi težava, kako dobiti vse datoteke v imeniku. V tem članku bomo obravnavali različne metode kako izpisati vsa imena datotek v imeniku v Pythonu.

Izvajanje operacij z datotekami je obvezna veščina programerjev. Učenje operacij datotek z uporabo Pythona pomaga pri upravljanju datotek, integraciji datotek z vašimi programi, gradnji programov iz resničnega sveta itd. Zajeli bomo najbolj temeljni koncept seznama vseh datotek v določenem imeniku.



Za to vadnico o seznamu imen datotek in podrobnosti v imeniku bomo obravnavali dva modula in njune ustrezne funkcije.

Kaj je imenik v Pythonu?

Imenik, včasih znan kot mapa, je organizacijska struktura enote v datotečnem sistemu računalnika za shranjevanje in iskanje datotek ali več map. Python zdaj podpira več API-jev za prikazovanje vsebine imenika. Uporabimo lahko na primer funkcije Path.iterdir, os.scandir, os.walk, Path.rglob ali os.listdir.

Imenik v uporabi: gfg



Datoteke v imeniku

Kako izpisati datoteke v imeniku v Pythonu

Obstaja več načinov za prikaz vseh datotek v imeniku. V tem članku bomo obravnavali spodnje module in njihove funkcije za pridobivanje seznama datotek v imeniku. Pokrili bomo skupno 5 načinov s primeri za preverjanje seznama datotek v imeniku.

  1. Uporaba OS modul
  2. Uporaba glob modul

Seznam datotek v imeniku z uporabo modula Os v Pythonu

Uporabimo lahko te 3 metode OS modul , da dobite seznam datotek v imeniku.



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

Uporaba metode os.listdir() za pridobitev seznama datotek

os.listdir() metoda pridobi seznam vseh datotek in imenikov v določenem imeniku. Privzeto je to trenutni imenik. Izven prve ravni map os.listdir() ne vrne nobenih datotek ali map.

Sintaksa : os.listdir(pot)

Parametri :

  • Pot : Pot do imenika

Vrsta povratka : vrne seznam vseh datotek in imenikov na podani poti

Primer 1: Pridobite seznam vseh datotek v imeniku

V tem primeru je modul os uvožen za interakcijo z operacijskim sistemom. Funkcija listdir se uporablja za pridobitev seznama vseh datotek in imenikov na navedeni poti (C://Users//Vanshi//Desktop//gfg). Rezultat se nato natisne in prikaže imena datotek in imenikov, ki so prisotni na določeni lokaciji.

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

onclick js

>

>

Izhod:

2. primer: pridobite vse datoteke in nobene mape

V tem primeru program Python od uporabnika zahteva pot do mape ter navede in natisne datoteke v tem imeniku, pri čemer uporabi modul os za interakcijo imenika in filtriranje datotek s pridobljenega seznama.

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

>

>

3. primer: iz imenika pridobite samo datoteke ».txt«.

V tem primeru skript Python uporablja modul os za ponavljanje datotek v trenutnem imeniku. Selektivno natisne samo imena datotek, ki se končajo z .txt, in dejansko prikaže besedilne datoteke, ki so v imeniku.

Python3




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

>

>

Izhod:

statična funkcija v Javi

Uporaba metode os.walk() za dostop do datotek v drevesu imenika

OS.walk() ustvari imena datotek v drevesu imenikov. Ta funkcija vrne seznam datotek v drevesni strukturi. Metoda kroži skozi vse imenike v drevesu.

Sintaksa: os.walk(vrh, zgoraj navzdol, onerror, sledite povezavam )

Parametri:

  • vrh: To je zgornji imenik, iz katerega želite pridobiti imena sestavnih datotek in map.
  • zgoraj navzdol: Podaja, da je treba imenike pregledati od zgoraj navzdol, ko je nastavljeno na True. Če je ta parameter nastavljen na False, bodo imeniki pregledani od zgoraj navzdol.
  • onerror: Zagotavlja obravnavo napak, če pride do napake
  • sledite povezavam : če je nastavljeno na True, obišče mape, na katere se sklicujejo sistemske povezave

Vrnitev: vrne ime vsake datoteke in mape v imeniku in vseh njegovih podimenikih.

Primer: pridobite samo datoteke ».txt« v imeniku

V tem primeru skript Python uporablja modul os za premikanje po datotekah v določenem imeniku (C://Users//Vanshi//Desktop//gfg) in njegovih podimenikih. Identificira in natisne imena datotek s pripono .txt ter zapolni spremenljivko seznama z želenimi besedilnimi datotekami.

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

>

>

Izhod:

Uporaba metode os.scandir() za seznam datotek v imeniku

os.scandir() je učinkovita različica funkcije os.listdir(). Kasneje ga je izdal Python in je podprt za Python 3.5 in višje.

Sintaksa: os.scandir(pot)

Parameter:

  • pot- Pot do imenika.

Vrsta vračila: vrne iterator objekta os.DirEntry.

Primer: seznam vseh datotek in imenikov v imeniku.

V tem primeru skript Python uporablja modul os za seznam datotek in imenikov na podani poti (C://Users//Vanshi//Desktop//gfg). Za pridobitev iteratorja objektov os.DirEntry, ki predstavljajo vnose v imeniku, uporablja os.scandir().

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

>

hashmap
>

Izhod:

Seznam datotek v imeniku z uporabo modula glob v Pythonu

The glob modul pridobi imena datotek/poti, ki se ujemajo z določenim vzorcem. Spodaj so načini, kako lahko izpišemo datoteke v imeniku z uporabo modula glob:

  • glob () Metoda
  • iglob() metoda

Uporaba metode glob() za pridobitev vseh datotek v imeniku

z glob , lahko uporabimo nadomestne znake (*, ?, [razponi]) da bo iskanje poti preprostejše in priročnejše.

Sintaksa: glob.glob(ime poti, *, rekurzivno=False)

Parametri:

  • ime poti : pot do imenika ali vzorec, ki se ujema.
  • rekurzivno (Izbirno): logični parameter (privzeta vrednost je nastavljena na False ), ki označuje, ali naj bo iskanje rekurzivno, tj. ali naj vključuje podimenike.

Vrne:

  • Seznam ujemajočih se poti datotek

Primer: ujemanje datotek Python in tiskanje z uporabo metode 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)>

>

>

Izhod:

Uporaba metode iglob() za seznam datotek v imeniku

iglob() metodo je mogoče uporabiti za rekurzivno tiskanje imen datotek, če je rekurzivni parameter nastavljen na True. To se uporablja za velike imenike, saj je učinkovitejše od metode glob().

Sintaksa: glob.iglob(ime poti, *, rekurzivno=False)

Parameter:

  • ime poti = Pot do imenika.
  • rekurzivno (izbirno)= Logični parameter (privzeta vrednost je nastavljena na False ), ki označuje, ali naj bo iskanje rekurzivno, tj. ali naj vključuje podimenike.

Vrne: Iterator ujemajočih se poti datotek

string.compare c#

Primer: Natisnite poti, ki se ujemajo z določenim vzorcem v imeniku.

V tem primeru skript Python uporablja modul glob za iskanje in tiskanje poti, ki se ujemajo z podanim vzorcem (C:UsersVanshiDesktopgfg***.txt). Uporablja glob.iglob(), da vrne iterator, ki se nato uporabi za tiskanje poti vseh besedilnih datotek, ki so prisotne v podanem imeniku in njegovih podimenikih.

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

>

>

Izhod:

To je 5 načinov, s katerimi lahko dobite podrobnosti o datotekah in imenikih v imeniku. Python je zagotovil več vgrajenih metod, s katerimi lahko poznate datoteke v imeniku. Ta vadnica je s primeri pokazala preproste metode za razumevanje pridobivanja seznamov datotek z modulom os in modulom glob.

Podobno se glasi:

  • Seznam datotek v imeniku s končnico
  • Seznam vseh datotek določene vrste v imeniku z uporabo Pythona
  • Izpisovanje imenikov in datotek v Pythonu
  • Pridobite seznam datotek v imeniku z velikostjo
  • Ravnanje z datotekami v Pythonu