logo

Python: llista de fitxers en un directori

De vegades, mentre es treballa amb fitxers a Python, sorgeix un problema amb com obtenir tots els fitxers d'un directori. En aquest article, tractarem diferents mètodes com llistar tots els noms de fitxers en un directori en Python.

La realització d'operacions amb fitxers és una habilitat imprescindible per als programadors. Aprendre les operacions de fitxers amb Python ajuda a gestionar fitxers, integrar fitxers amb els vostres programes, crear programes del món real, etc. Cobrirem el concepte més fonamental d'enumerar tots els fitxers presents en un directori específic.



Cobrirem dos mòduls i les seves funcions respectives per a aquest tutorial sobre la llista de noms i detalls de fitxers en un directori.

Què és un directori en Python?

Un directori, de vegades conegut com a carpeta, és una estructura organitzativa d'unitat en el sistema de fitxers d'un ordinador per emmagatzemar i localitzar fitxers o més carpetes. Python ara admet diverses API per llistar el contingut del directori. Per exemple, podem utilitzar les funcions Path.iterdir, os.scandir, os.walk, Path.rglob o os.listdir.

Directori en ús: gfg



Fitxers en un directori

Com llistar fitxers en un directori en Python

Hi ha diverses maneres d'enumerar tots els fitxers d'un directori. En aquest article, parlarem dels mòduls següents i de les seves funcions per obtenir la llista de fitxers d'un directori. Cobrirem un total de 5 maneres amb exemples per comprovar la llista de fitxers d'un directori.

  1. Utilitzant Mòdul SO
  2. Utilitzant Mòdul globus

Llista de fitxers en un directori mitjançant el mòdul Os a Python

Podem utilitzar aquests 3 mètodes del Mòdul SO , per obtenir una llista de fitxers en un directori.



  • os.listdir() Mètode
  • os.walk() Mètode
  • os.scandir() Mètode

Utilitzant el mètode os.listdir() per obtenir la llista de fitxers

os.listdir() obté la llista de tots els fitxers i directoris d'un directori especificat. Per defecte, és el directori actual. Més enllà del primer nivell de carpetes, os.listdir() no retorna cap fitxer ni carpeta.

Sintaxi : os.listdir(camí)

Paràmetres :

  • Camí : Ruta del directori

Tipus de retorn : retorna una llista de tots els fitxers i directoris del camí especificat

Exemple 1: obteniu una llista de tots els fitxers d'un directori

En aquest exemple, el mòdul OS s'importa per interactuar amb el sistema operatiu. La funció listdir s'utilitza per obtenir una llista de tots els fitxers i directoris del camí especificat (C://Users//Vanshi//Desktop//gfg). A continuació, s'imprimeix el resultat, mostrant els noms dels fitxers i directoris presents a la ubicació especificada.

Python 3




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

itera a través del mapa java

>

>

Sortida:

Exemple 2: obteniu tots els fitxers i cap carpeta

En aquest exemple, el programa Python demana a l'usuari una ruta de carpeta i llista i imprimeix els fitxers d'aquest directori, utilitzant el mòdul OS per a la interacció amb el directori i filtrar fitxers de la llista obtinguda.

Python 3




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

>

>

Exemple 3: obteniu només fitxers '.txt' del directori

En aquest exemple, l'script de Python utilitza el mòdul os per iterar a través dels fitxers del directori actual. Imprimeix de manera selectiva només els noms dels fitxers que acaben amb .txt, fent una llista efectiva dels fitxers de text presents al directori.

Python 3

csma i csma cd




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

>

>

Sortida:

Utilitzant el mètode os.walk() per accedir a fitxers en un arbre de directoris

OS.walk() genera noms de fitxers en un arbre de directoris. Aquesta funció retorna una llista de fitxers en una estructura d'arbre. El mètode recorre tots els directoris d'un arbre.

Sintaxi: os.walk(top, topdown, onerror, followlinks )

Paràmetres:

  • superior: És el directori superior del qual voleu recuperar els noms dels fitxers i carpetes dels components.
  • De dalt a baix: Especifica que els directoris s'han d'escanejar de dalt a baix quan s'estableixen com a True. Si aquest paràmetre és Fals, els directoris s'examinaran de dalt a baix.
  • onerror: Proporciona un gestor d'errors si es troba un error
  • enllaços de seguiment : si s'estableix en True, visita les carpetes a les quals fan referència els enllaços del sistema

Tornada: retorna el nom de cada fitxer i carpeta d'un directori i qualsevol dels seus subdirectoris.

Exemple: obteniu només fitxers '.txt' en un directori

En aquest exemple, l'script de Python utilitza el mòdul os per recórrer els fitxers del directori especificat (C://Users//Vanshi//Desktop//gfg) i els seus subdirectoris. Identifica i imprimeix els noms dels fitxers amb una extensió .txt, emplenant la variable de llista amb els fitxers de text desitjats.

Python 3




números per a l'alfabet

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

>

>

Sortida:

Utilitzant el mètode os.scandir() per llistar fitxers en un directori

os.scandir() és una versió eficient de la funció os.listdir(). Més tard va ser llançat per Python i és compatible amb Python 3.5 i posteriors.

Sintaxi: os.scandir(camí)

Paràmetre:

  • Camí- Ruta del directori.

Tipus de retorn: retorna un iterador de l'objecte os.DirEntry.

Exemple: llista tots els fitxers i directoris d'un directori.

En aquest exemple, l'script de Python utilitza el mòdul OS per llistar fitxers i directoris al camí especificat (C://Users//Vanshi//Desktop//gfg). Utilitza os.scandir() per obtenir un iterador d'objectes os.DirEntry que representen entrades al directori.

Python 3




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

>

>

Sortida:

Llista de fitxers en un directori mitjançant el mòdul glob a Python

El glob mòdul recupera fitxers/noms de camí que coincideixen amb un patró especificat. A continuació es mostren les maneres en què podem llistar fitxers en un directori mitjançant el mòdul glob:

  • glob() Mètode
  • iglob() mètode

Utilitzant el mètode glob() per obtenir tots els fitxers d'un directori

Amb glob , podem utilitzar comodins (*, ?, [intervals]) per fer que la recuperació del camí sigui més senzilla i còmoda.

carnero pothineni

Sintaxi: glob.glob(nom del camí, *, recursiu=Fals)

Paràmetres:

  • nom de ruta : el camí del directori o el patró que s'ha de fer coincidir.
  • recursiu (Opcional): un paràmetre booleà (el valor per defecte s'estableix a Fals ) que indica si la cerca ha de ser recursiva, és a dir, si ha d'incloure subdirectoris.

Devolucions:

  • Llista de camins de fitxer coincidents

Exemple: Coincidència de fitxers Python i impressió mitjançant el mètode glob().

Python 3




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

>

>

Sortida:

Utilitzant el mètode iglob() per llistar fitxers en un directori

iglob() El mètode es pot utilitzar per imprimir noms de fitxers de manera recursiva si el paràmetre recursiu s'estableix en True. S'utilitza per a directoris grans, ja que és més eficient que el mètode glob().

Sintaxi: glob.iglob(nom de ruta, *, recursiu=Fals)

Paràmetre:

  • nom de ruta = Ruta del directori.
  • recursiu (Opcional)= Un paràmetre booleà (el valor per defecte s'estableix en Fals ) que indica si la cerca ha de ser recursiva, és a dir, si ha d'incloure subdirectoris.

Devolucions: Iterador de camins de fitxer coincidents

Exemple: Imprimeix camins que coincideixen amb el patró especificat en un directori.

En aquest exemple, l'script de Python utilitza el mòdul glob per trobar i imprimir camins que coincideixen amb el patró especificat (C:UsersVanshiDesktopgfg***.txt). Utilitza glob.iglob() per retornar un iterador, que després s'utilitza per imprimir els camins de tots els fitxers de text presents al directori especificat i els seus subdirectoris.

Python 3


constructor python



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

>

>

Sortida:

Aquestes són les 5 maneres que podeu utilitzar per obtenir detalls dels fitxers i directoris d'un directori. Python ha proporcionat diversos mètodes integrats que podeu utilitzar per conèixer els fitxers presents en un directori. Aquest tutorial va mostrar mètodes senzills amb exemples per entendre com obtenir llistes de fitxers amb el mòdul os i el mòdul glob.

Lectures semblants:

  • Llista els fitxers al directori amb extensió
  • Llista tots els fitxers d'un tipus determinat en un directori mitjançant Python
  • Llista de directoris i fitxers en Python
  • Obteniu una llista de fitxers al directori amb mida
  • Gestió de fitxers en Python