Python: lista de archivos en un directorio

En este artículo, cubriremos cómo enumeramos todos los archivos en un directorio en python.

¿Qué es un directorio?

Un directorio, también conocido a veces 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 usar las funciones Path.iterdir, os.scandir , os.walk , Path.rglob u os.listdir

Directorio en uso: gfg

 

Método 1: Módulo Os

  •  El método os.listdir() 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 :

  • Ruta del directorio

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

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

Python

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

Producción:

  

Ejemplo 2: Para obtener solo archivos .txt.

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:

  •  OS.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(top, topdown, onerror, followlinks)

  • top: es el directorio superior desde el que desea recuperar los nombres de los archivos y carpetas de los componentes.
  • topdown: especifica que los directorios se deben escanear de arriba hacia abajo cuando se establece en True. Si este parámetro es falso, los directorios se examinarán de arriba hacia abajo.
  • onerror: proporciona un controlador de errores si se encuentra un error 
  • followlinks : si se establece en True, visita las carpetas a las que hacen referencia los enlaces del sistema 

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

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:

  •  os.scandir() es compatible con Python 3.5 y versiones posteriores. 

Sintaxis: os.scandir(ruta = ‘.’)

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

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:

Método 2: Usando el módulo global 

El módulo glob se usa para recuperar archivos/nombres de ruta que coincidan con un patrón específico. 

  • Método glob(): con glob, podemos usar comodines («*, ?, [rangos]) para hacer que la recuperación de rutas sea más simple y conveniente.

Ejemplo:

Python3

import glob
 
# This is my path
path = "C:\\Users\\Vanshi\\Desktop\\gfg"
 
# Using '*' pattern
print('\nNamed with wildcard *:')
for files in glob.glob(path + '*'):
    print(files)
 
# Using '?' pattern
print('\nNamed with wildcard ?:')
for files in glob.glob(path + '?.txt'):
    print(files)
 
 
# Using [0-9] pattern
print('\nNamed with wildcard ranges:')
for files in glob.glob(path + '/*[0-9].*'):
    print(files)

Producción:

  •  El método iglob() se puede utilizar para imprimir nombres de archivos de forma recursiva si el parámetro recursivo se establece en True.

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

Ejemplo:

Python3

import glob
 
# This is my path
path = "C:\\Users\\Vanshi\\Desktop\\gfg**\\*.txt"
 
 
# It returns an iterator which will
# be printed simultaneously.
print("\nUsing glob.iglob()")
 
# Prints all types of txt files present in a Path
for file in glob.iglob(path, recursive=True):
    print(file)

Producción:

Publicación traducida automáticamente

Artículo escrito por aksrathod07 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 *