¿Cómo listar archivos en un directorio usando Python?

en este tutorial, estamos cubriendo todo lo que necesita saber sobre cómo listar archivos en un directorio usando Python.

Python es un lenguaje de propósito general, utilizado en una variedad de campos como la ciencia de datos, el aprendizaje automático e incluso en el desarrollo Web. No parece haber ninguna restricción en la aplicación del Lenguaje Python.

por lo tanto, parece bastante trivial Python se puede utilizar para listar archivos y directorios en cualquier sistema., El objetivo de este artículo es iluminar al lector sobre las formas de listar archivos en un sistema que utiliza Python.

listar todos los archivos en un directorio usando Python

con el propósito de interactuar con directorios en un sistema usando Python, se utiliza la bibliotecaos.

1. Usando la librería’ os ‘

el método que vamos a ejercitar por nuestro motivo es listdir (). Como su nombre indica, se utiliza para listar elementos en directorios.,

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

Resultado:

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

los usuarios de Linux pueden coincidir fácilmente el resultado anterior utilizando el estándar de ls comando en el terminal.

Elementos de la Lista usando el comando ‘ls’

Como podemos ver los resultados de cada método de partidos.

2., El uso de la biblioteca ‘glob’

glob es principalmente una biblioteca de coincidencia de patrones de nombre de archivo, pero se puede usar para listar elementos en el directorio actual mediante:

salida:

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

el carácter comodín '*' se utiliza para hacer coincidir todos los elementos del directorio actual. Dado que queremos mostrar los elementos del directorio actual, necesitamos desactivar la naturaleza recursiva de la función glob().

3., Listar Solo archivos en el directorio actual

en los métodos anteriores, el código python devolvía todos los elementos en el directorio actual independientemente de su naturaleza. Podemos extraer solo los archivos usando la función path.isfile() dentro de la biblioteca os.

salida:

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

en el fragmento de código anterior, la comprensión de lista se utiliza para filtrar solo aquellos elementos que son realmente un archivo.,

otra cosa clave a tener en cuenta aquí es que, el código anterior no funciona para otros directorios ya que la variable 'f' no es una ruta absoluta, sino una ruta relativa al directorio actual.

listar todos los archivos en un directorio recursivamente

para imprimir los archivos dentro de un directorio y sus subdirectorios, necesitamos recorrerlos recursivamente.

1. Usando la biblioteca’ os ‘

con la ayuda del método walk(), podemos recorrer cada subdirectorio dentro de un directorio uno por uno.,

salida:

el método os.walk() simplemente sigue cada subdirectorio y extrae los archivos de forma descendente por defecto. Hay tres iteradores utilizados para ir a través de la salida de os.walk() function:

  • path – esta variable contiene el directorio presente que la función está observando durante una cierta iteración
  • folders – esta variable es una lista de directorios dentro de ID=»0ac10360b4″> Directory.,
  • files – una lista de archivos dentro del directorio 'path'.

el métodojoin() se utiliza para concatenar el nombre del archivo con su directorio padre, proporcionándonos la ruta relativa al archivo.

2. Usando la biblioteca’ glob ‘

Similar al procedimiento anterior, glob puede visitar recursivamente cada directorio y extraer todos los elementos y devolverlos.,

salida:

el símbolo '**' usado junto con la variable path le dice a la función glob() que haga coincidir archivos dentro de cualquier subdirectorio. El '*' le dice a la función que coincida con todos los elementos dentro de un directorio.

dado que queremos extraer solo los archivos en el directorio completo, filtramos los archivos utilizando la función isfile() utilizada anteriormente.

listar todos los subdirectorios dentro de un directorio

en lugar de listar archivos, podemos listar todos los subdirectorios presentes en un directorio específico.,

salida:

./Documents/Journaldev

la diferencia menor entre los archivos de listado y directorios es la selección del iterador durante el proceso deos.walk() función. Para archivos, iteramos sobre la variable archivos. Aquí, loop sobre la variable carpetas.

listar archivos en un directorio con ruta absoluta

Una vez que sabemos cómo listar archivos en un directorio, mostrar la ruta absoluta es pan comido. El método abspath() nos proporciona la ruta absoluta para un archivo.,

salida:

Una cosa a tener en cuenta aquí es queabspath() debe proporcionarse con la ruta relativa del archivo y ese es el propósito de la funciónjoin().

listar archivos en un directorio haciendo coincidir Patrones

hay varias formas de filtrar los nombres de archivos que coinciden con un patrón en particular. Repasemos cada uno de ellos uno por uno.

1. Usando la biblioteca’ fnmatch ‘

como su nombre indica, fnmatch es una biblioteca de coincidencia de patrones de nombre de archivo., Usando fnmatch con nuestras bibliotecas de extracción de nombre de archivo estándar, podemos filtrar aquellos archivos que coincidan con un patrón específico.

Resultado:

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

El fnmatch() función toma dos parámetros, el nombre del archivo seguido por el patrón a ser igualado. En el código anterior, estamos mirando todos los archivos que contienen la palabra file en ellos.

2. Usando la biblioteca’ glob ‘

Como mencionamos anteriormente, glob's el propósito principal es la coincidencia de patrones de nombre de archivo.,

salida:

./Documents/list_files1.py

la expresión regular de coincidencia de patrón anterior '**/**.*' se puede explicar como:

3. Usando la biblioteca’ pathlib ‘

pathlib sigue una forma orientada a objetos de interactuar con el sistema de archivos. La función rglob() dentro de la biblioteca se puede usar para extraer recursivamente la lista de archivos a través de un determinado objeto Path.

esta lista de archivos se puede filtrar utilizando un patrón dentro de la función rglob().,

Resultado:

Documents/my_program.cppDocuments/Journaldev/mastermind.py

El anterior fragmento de código se utiliza para listar todos los archivos que comienzan con la letra 'm'.

listar archivos en un directorio con una extensión específica

listar archivos con una extensión específica en Python es algo similar a la coincidencia de patrones. Para este propósito, necesitamos crear un patrón con respecto a la extensión del archivo.

salida:

la funciónfnmatch() filtra los archivos que terminan con'.py', es decir, los archivos de python., Si queremos extraer archivos con diferentes extensiones, entonces tenemos que alterar esta parte del código. Por ejemplo, para obtener solo archivos c++, se debe usar '.cpp'.

esto resume las formas de obtener la lista de archivos en un directorio usando Python.

conclusión

puede haber múltiples formas de resolver cualquier problema a mano, y la más conveniente no siempre es la respuesta. Con respecto a este artículo, un programador de Python debe ser consciente de todas las formas en que podemos listar archivos en un directorio.

Share

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *