logo

Python: enumerar archivos en un directorio

A veces, mientras se trabaja con archivos en Python, surge un problema sobre cómo obtener todos los archivos en un directorio. En este artículo, cubriremos diferentes métodos de cómo enumerar todos los nombres de archivos en un directorio en pitón.

Realizar operaciones con archivos es una habilidad imprescindible para los programadores. Aprender operaciones de archivos usando Python ayuda a administrar archivos, integrar archivos con sus programas, crear programas del mundo real, etc. Cubriremos el concepto más fundamental de enumerar todos los archivos presentes en un directorio específico.



Cubriremos dos módulos y sus respectivas funciones en este tutorial sobre cómo enumerar nombres de archivos y detalles en un directorio.

¿Qué es un directorio en Python?

Un directorio, a veces conocido como carpeta, es una estructura organizativa unitaria en el sistema de archivos de una computadora para almacenar y ubicar archivos o más carpetas. Python ahora admite varias API para enumerar el contenido del directorio. Por ejemplo, podemos utilizar las funciones Path.iterdir, os.scandir, os.walk, Path.rglob u os.listdir.

Directorio en uso: gfg



Archivos en un directorio

Cómo enumerar archivos en un directorio en Python

Hay varias formas de enumerar todos los archivos en un directorio. En este artículo, analizaremos los siguientes módulos y sus funciones para recuperar la lista de archivos en un directorio. Cubriremos un total de 5 formas con ejemplos para verificar la lista de archivos en un directorio.

  1. Usando Módulo de sistema operativo
  2. Usando módulo global

Enumerar archivos en un directorio usando el módulo Os en Python

Podemos utilizar estos 3 métodos del módulo de sistema operativo , para obtener una lista de archivos en un directorio.



  • os.listdir() Método
  • os.walk() Método
  • os.scandir() Método

Usando el método os.listdir() para obtener la lista de archivos

os.listdir() El método obtiene la lista de todos los archivos y directorios en un directorio específico. Por defecto, es el directorio actual. Más allá del primer nivel de carpetas, os.listdir() no devuelve ningún archivo o carpeta.

Sintaxis : os.listdir(ruta)

Parámetros :

  • Camino : Ruta del directorio

Tipo de devolución : devuelve una lista de todos los archivos y directorios en la ruta especificada

Ejemplo 1: obtener una lista de todos los archivos en un directorio

En este ejemplo, el módulo os se importa para interactuar con el sistema operativo. La función listdir se utiliza para obtener una lista de todos los archivos y directorios en la ruta especificada (C://Users//Vanshi//Desktop//gfg). Luego se imprime el resultado, mostrando los nombres de los archivos y directorios presentes en la ubicación especificada.

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

tutorial de c#

>

>

Producción:

Ejemplo 2: obtener todos los archivos y ninguna carpeta

En este ejemplo, el programa Python solicita al usuario una ruta de carpeta y enumera e imprime los archivos en ese directorio, utilizando el módulo os para la interacción del directorio y filtrando los archivos de la lista obtenida.

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

conversión de tipos y conversión en java
>

>

Ejemplo 3: obtener solo archivos '.txt' del directorio

En este ejemplo, el script de Python utiliza el módulo os para recorrer los archivos en el directorio actual. Imprime selectivamente sólo los nombres de los archivos que terminan en .txt, enumerando efectivamente los archivos de texto presentes en el directorio.

Python3




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

>

>

Producción:

Usando el método os.walk() para acceder a archivos en un árbol de directorio

SO.walk() genera nombres de archivos en un árbol de directorios. Esta función devuelve una lista de archivos en una estructura de árbol. El método recorre todos los directorios de un árbol.

Sintaxis: os.walk(arriba, de arriba hacia abajo, onerror, seguir enlaces )

Parámetros:

  • arriba: Es el directorio superior desde el que desea recuperar los nombres de los archivos y carpetas de los componentes.
  • De arriba hacia abajo: Especifica que los directorios deben escanearse de arriba hacia abajo cuando se establece en Verdadero. Si este parámetro es Falso, los directorios se examinarán de arriba hacia abajo.
  • error: Proporciona un controlador de errores si se encuentra un error.
  • seguirenlaces : si se establece en Verdadero, visita las carpetas a las que hacen referencia los enlaces del sistema

Devolver: devuelve el nombre de cada archivo y carpeta dentro de un directorio y cualquiera de sus subdirectorios.

Ejemplo: obtener solo archivos '.txt' en un directorio

En este ejemplo, la secuencia de comandos de Python utiliza el módulo os para recorrer los archivos en el directorio especificado (C://Users//Vanshi//Desktop//gfg) y sus subdirectorios. Identifica e imprime los nombres de los archivos con una extensión .txt, completando la variable de lista con los archivos de texto deseados.

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

>

>

Producción:

Usando el método os.scandir() para listar archivos en un directorio

os.scandir() es una versión eficiente de la función os.listdir(). Posteriormente fue lanzado por Python y es compatible con Python 3.5 y superiores.

Sintaxis: os.scandir(ruta)

sistema operativo de red

Parámetro:

  • Camino- Ruta del directorio.

Tipo de devolución: devuelve un iterador del objeto os.DirEntry.

Ejemplo: enumera todos los archivos y directorios de un directorio.

En este ejemplo, la secuencia de comandos de Python utiliza el módulo del sistema operativo para enumerar archivos y directorios en la ruta especificada (C://Users//Vanshi//Desktop//gfg). Emplea os.scandir() para obtener un iterador de objetos os.DirEntry que representan entradas en el directorio.

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

>

>

Producción:

quien hizo la escuela

Listar archivos en un directorio usando el módulo glob en Python

El globo módulo recupera nombres de archivos/rutas que coinciden con un patrón específico. A continuación se detallan las formas en que podemos enumerar archivos en un directorio usando el módulo glob:

  • globo() Método
  • iglob() método

Usando el método glob() para obtener todos los archivos en un directorio

Con globo , podemos usar comodines (*, ?, [rangos]) para hacer que la recuperación de rutas sea más simple y conveniente.

Sintaxis: glob.glob(nombre de ruta, *, recursivo=Falso)

Parámetros:

  • nombre de ruta : La ruta del directorio o el patrón a coincidir.
  • recursivo (Opcional): un parámetro booleano (el valor predeterminado se establece en FALSO ) que indica si la búsqueda debe ser recursiva, es decir, si debe incluir subdirectorios.

Devoluciones:

  • Lista de rutas de archivos coincidentes

Ejemplo: coincidencia e impresión de archivos Python usando el método 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)>

>

>

Producción:

Usando el método iglob() para listar archivos en un directorio

iglob() El método se puede utilizar para imprimir nombres de archivos de forma recursiva si el parámetro recursivo está establecido en Verdadero. Esto se utiliza para directorios grandes ya que es más eficiente que el método glob().

Sintaxis: glob.iglob(nombre de ruta, *, recursivo=Falso)

Parámetro:

  • nombre de ruta = Ruta del directorio.
  • recursivo (Opcional)= Un parámetro booleano (el valor predeterminado se establece en FALSO ) que indica si la búsqueda debe ser recursiva, es decir, si debe incluir subdirectorios.

Devoluciones: Iterador de rutas de archivos coincidentes

Ejemplo: imprimir rutas que coincidan con el patrón especificado en un directorio.

En este ejemplo, la secuencia de comandos de Python utiliza el módulo glob para buscar e imprimir rutas que coincidan con el patrón especificado (C:UsersVanshiDesktopgfg***.txt). Emplea glob.iglob() para devolver un iterador, que luego se usa para imprimir las rutas de todos los archivos de texto presentes en el directorio especificado y sus subdirectorios.

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

>

Linux cambiar el nombre del directorio

>

Producción:

Estas son las 5 formas que puede utilizar para obtener detalles de archivos y directorios en un directorio. Python ha proporcionado múltiples métodos integrados que puede utilizar para conocer los archivos presentes en un directorio. Este tutorial mostró métodos sencillos con ejemplos para comprender cómo obtener listados de archivos con el módulo os y el módulo glob.

Lecturas similares:

  • Listar archivos en directorio con extensión
  • Enumere todos los archivos de cierto tipo en un directorio usando Python
  • Listado de directorios y archivos en Python
  • Obtener una lista de archivos en el directorio con tamaño
  • Manejo de archivos en Python