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