Saltar al contenido principal

Cómo filtrar archivos por extensión en Python

Cómo filtrar archivos por extensión en Python.

Aquí tienes un tutorial paso a paso sobre cómo filtrar archivos por extensión en Python:

Paso 1: Importa el módulo os

Para trabajar con archivos y directorios, necesitamos importar el módulo integrado os. Este módulo proporciona varias funciones para interactuar con el sistema operativo.

import os

Paso 2: Define la ruta del directorio

Especifica la ruta del directorio donde quieres filtrar los archivos. Puedes proporcionar una ruta absoluta o una ruta relativa.

directory_path = '/ruta/al/directorio'

Paso 3: Lista todos los archivos en el directorio

Utiliza la función os.listdir() para obtener una lista de todos los archivos y directorios presentes en el directorio especificado.

files = os.listdir(directory_path)

Paso 4: Filtra los archivos por extensión

Itera sobre la lista de archivos y utiliza la función os.path.splitext() para dividir el nombre del archivo y la extensión. Compara la extensión con la extensión deseada utilizando una declaración if.

desired_extension = '.txt'  # Cambia esto por la extensión deseada

filtered_files = []
for file in files:
_, extension = os.path.splitext(file)
if extension == desired_extension:
filtered_files.append(file)

Alternativamente, puedes utilizar una comprensión de lista para lograr el mismo resultado de una manera más concisa:

filtered_files = [file for file in files if os.path.splitext(file)[1] == desired_extension]

Paso 5: Imprime o procesa los archivos filtrados

Puedes imprimir los nombres de los archivos filtrados o realizar un procesamiento adicional en ellos según tus requisitos.

for file in filtered_files:
print(file)

¡Eso es todo! Ahora tienes una lista de archivos filtrados por su extensión.

Aquí está el código completo:

import os

directory_path = '/ruta/al/directorio'
files = os.listdir(directory_path)

desired_extension = '.txt' # Cambia esto por la extensión deseada

filtered_files = [file for file in files if os.path.splitext(file)[1] == desired_extension]

for file in filtered_files:
print(file)

Siéntete libre de modificar la variable desired_extension para que coincida con la extensión por la que quieres filtrar.