Buscar archivos con Python

Muhammad Maisam Abbas 30 enero 2023
  1. Buscar archivo con la función os.walk() en Python
  2. Buscar archivo con la función glob.glob() en Python
  3. Buscar archivo con la función Path.glob() en Python
Buscar archivos con Python

Este tutorial discutirá los métodos para encontrar un archivo en Python.

Buscar archivo con la función os.walk() en Python

Si queremos encontrar la ruta de un archivo específico en nuestra máquina con python, podemos usar el módulo os. El módulo os proporciona muchas funcionalidades relacionadas con el sistema operativo para nuestro código. La función os.walk() toma una cadena path como parámetro de entrada y nos da la ruta del directorio, el nombre del directorio y el nombre de cada archivo en el path. El código de muestra a continuación nos muestra cómo encontrar un archivo en Python con la función os.walk().

import os


def findfile(name, path):
    for dirpath, dirname, filename in os.walk(path):
        if name in filename:
            return os.path.join(dirpath, name)


filepath = findfile("file2.txt", "/")
print(filepath)

Producción :

/Users\maisa\Documents\PythonProjects\file2.txt

En el código anterior, declaramos la función findfile() que usa la función os.walk() para encontrar nuestro archivo. La función findfile() toma el nombre del archivo y la ruta raíz como parámetros de entrada y devuelve la ruta de nuestro archivo especificado. Este enfoque nos da la ruta absoluta del archivo.

Buscar archivo con la función glob.glob() en Python

También podemos usar la función glob.glob() para resolver nuestro problema actual. La función glob.glob() toma un nombre de ruta como parámetro de entrada y devuelve una lista de todas las rutas de archivo que coinciden con el argumento de entrada. Podemos especificar una expresión regular como parámetro de entrada que coincida solo con nuestro archivo. El código de muestra a continuación nos muestra cómo encontrar un archivo en Python con la función glob.glob().

import glob

filepath = glob.glob("**/file.txt", recursive=True)
print(filepath)

Producción :

['Find File\\file.txt']

Pasamos nuestro nombre de archivo como parámetro de entrada a la función glob.glob(), y devolvió la ruta relativa de nuestro archivo. Este método puede darnos la ruta relativa así como la ruta absoluta de nuestro archivo.

Buscar archivo con la función Path.glob() en Python

Otro enfoque es utilizar el módulo pathlib. Este módulo de Python ofrece clases que representan rutas del sistema de archivos para diferentes sistemas operativos. Podemos usar la función Path.glob() dentro del módulo pathlib para resolver nuestro problema específico. Esta función es similar a la función glob() dentro del módulo glob. La función Path.glob() toma un patrón como parámetro de entrada y devuelve una lista de objetos de ruta que coinciden con el argumento de entrada. El fragmento de código de muestra nos muestra cómo encontrar un archivo en Python con el módulo pathlib.

import pathlib

filepath = sorted(pathlib.Path(".").glob("**/file2.txt"))
print(filepath)

Producción :

[WindowsPath('file2.txt')]

Pasamos una cadena de patrón que coincide con nuestro archivo con la función Path.glob(). La función Path.glob() nos devuelve una lista de objetos WindowsPath que coinciden con el patrón. Con este método, obtenemos objetos de ruta específicos de nuestro sistema operativo.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Artículo relacionado - Python File