Python: recorrer archivos de ciertas extensiones

Un directorio es capaz de almacenar varios archivos y Python puede admitir un mecanismo para recorrerlos. En este artículo, veremos diferentes métodos para iterar sobre ciertos archivos en un directorio o subdirectorio determinado.

Ruta que contiene diferentes archivos: Esto se utilizará para todos los métodos.

Método 1: Usar listdir()

En este método, usaremos la función os.listdir() que se encuentra en la biblioteca os. Esta función devuelve una lista de nombres de archivos presentes en el directorio y sin orden.

Entonces, para obtener el tipo específico de archivo de un directorio en particular, necesitamos recorrer el directorio y el subdirectorio e imprimir el archivo con una extensión específica.

Sintaxis:

listdir(ruta)

Acercarse

  • Importe la biblioteca os y pase el directorio en la función os.listdir().
  • Cree una tupla que tenga las extensiones que desea obtener.
  • A través de un ciclo iterar sobre todos los archivos en el directorio e imprimir el archivo que tiene una extensión particular.
  • La función termina con() verifica si el archivo finaliza esa extensión en particular o no, luego imprime el nombre del archivo.

Ejemplo:

Python3

# importing the library
import os
 
# giving directory name
dirname = 'D:\\AllData'
 
# giving file extension
ext = ('.exe', 'jpg')
 
# iterating over all files
for files in os.listdir(dirname):
    if files.endswith(ext):
        print(files)  # printing file name of desired extension
    else:
        continue

Producción:

Método 2: Usar scandir()

Este método usa la función os.scandir() devuelve un iterador que se usa para acceder al archivo. Las entradas se producen en orden arbitrario. Enumera los directorios o archivos inmediatamente debajo de ese directorio.

Sintaxis:

scandir(ruta)

Ejemplo:

Python3

# importing the module
import os
 
# directory name
dirname = 'D:\\AllData'
 
# extensions
ext = ('.exe', 'jpg')
 
# scanning the directory to get required files
for files in os.scandir(dirname):
    if files.path.endswith(ext):
        print(files)  # printing file name

Producción:

Método 3: Usando walk()

En este método usaremos la función os.walk() que nos da tres tuplas, a saber:-(dirpath, dirnames, filenames). Dado que es un proceso recursivo, iterará sobre todos los archivos descendientes en los subdirectorios e imprimirá el nombre del archivo. Otro enfoque es el mismo que el método anterior.

Sintaxis:

caminar (camino)

Ejemplo:

Python3

# importing the module
import os
 
# giving directory name
folderdir = 'D:\\AllData'
 
# giving file extensions
ext = ('.pdf', '.mkv')
 
# iterating over directory and subdirectory to get desired result
for path, dirc, files in os.walk(folderdir):
    for name in files:
        if name.endswith(ext):
            print(name)  # printing file name

Producción:

Método 4: Usando glob 

En este método, usaremos la función glob.iglob() que se encuentra en la biblioteca glob. Glob es un término general utilizado para definir técnicas para hacer coincidir patrones específicos de acuerdo con las reglas relacionadas con el shell de Unix. Los sistemas y shells Linux y Unix también admiten glob y también proporcionan la función glob() en las bibliotecas del sistema.

En Python, el módulo glob se usa para recuperar archivos/nombres de rutas que coinciden con un patrón específico. La función glob acepta el directorio/ruta y el patrón \\**\\ le dice que busque los archivos con una extensión específica en las subcarpetas, que también debe ser un proceso recursivo, por lo que recursivo debe establecerse en Verdadero.

Ejemplo:

Python3

# importing the module
import glob
 
# accessing and printing files in directory and subdirectory
for filename in glob.glob('D:\\AllData\\**\\*.exe', recursive=True):
    print(filename)  # print file name

Producción:

Método 5: Usando la ruta()

Este método usa la función Path() del módulo pathlib . La función de ruta acepta el nombre del directorio como argumento y en la función global, el patrón ‘**/*’ se usa para encontrar archivos de extensiones específicas. También es una función recursiva y enumera todos los archivos del mismo directorio y subdirectorio.

Sintaxis:

camino (camino)

Ejemplo:

Python3

# importing the module
from pathlib import Path
 
# directory name
dirname = 'D:\\AllData'
 
# giving directory name to Path() function
paths = Path(dirname).glob('**/*.exe',)
 
# iterating over all files
for path in paths:
    print(path)  # printing file name

Producción:

Publicación traducida automáticamente

Artículo escrito por adityaprasad1308 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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