Rechercher des fichiers à l'aide de Python

Muhammad Maisam Abbas 30 janvier 2023
  1. Rechercher un fichier avec la fonction os.walk() en Python
  2. Rechercher un fichier avec la fonction glob.glob() en Python
  3. Rechercher un fichier avec la fonction Path.glob() en Python
Rechercher des fichiers à l'aide de Python

Ce tutoriel discutera des méthodes pour trouver un fichier en Python.

Rechercher un fichier avec la fonction os.walk() en Python

Si nous voulons trouver le chemin d’un fichier spécifique sur notre machine avec python, nous pouvons utiliser le module os. Le module os fournit de nombreuses fonctionnalités liées à l’os à notre code. La fonction os.walk() prend une chaîne path comme paramètre d’entrée et nous donne le chemin du répertoire, le nom du répertoire et le nom de fichier pour chaque fichier dans le path. L’exemple de code ci-dessous nous montre comment trouver un fichier en Python avec la fonction 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)

Production :

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

Dans le code ci-dessus, nous avons déclaré la fonction findfile() qui utilise la fonction os.walk() pour trouver notre fichier. La fonction findfile() prend le nom du fichier et le chemin racine comme paramètres d’entrée et renvoie le chemin de notre fichier spécifié. Cette approche nous donne le chemin absolu du fichier.

Rechercher un fichier avec la fonction glob.glob() en Python

Nous pouvons également utiliser la fonction glob.glob() pour résoudre notre problème actuel. La fonction glob.glob() prend un nom de chemin comme paramètre d’entrée et renvoie une liste de tous les chemins de fichiers qui correspondent à l’argument d’entrée. Nous pouvons spécifier une expression régulière comme paramètre d’entrée qui correspond uniquement à notre fichier. L’exemple de code ci-dessous nous montre comment trouver un fichier en Python avec la fonction glob.glob().

import glob

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

Production :

['Find File\\file.txt']

Nous avons passé notre nom de fichier comme paramètre d’entrée à la fonction glob.glob(), et elle a renvoyé le chemin relatif de notre fichier. Cette méthode peut nous donner le chemin relatif ainsi que le chemin absolu de notre fichier.

Rechercher un fichier avec la fonction Path.glob() en Python

Une autre approche consiste à utiliser le module pathlib. Ce module Python propose des classes qui représentent les chemins de système de fichiers pour différents systèmes d’exploitation. Nous pouvons utiliser la fonction Path.glob() à l’intérieur du module pathlib pour résoudre notre problème spécifique. Cette fonction est similaire à la fonction glob() à l’intérieur du module glob(). La fonction Path.glob() prend un modèle comme paramètre d’entrée et renvoie une liste d’objets de chemin qui correspondent à l’argument d’entrée. L’extrait de code exemple nous montre comment trouver un fichier en Python avec le module pathlib.

import pathlib

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

Production :

[WindowsPath('file2.txt')]

Nous avons passé une chaîne de modèle qui correspond à notre fichier à la fonction Path.glob(). La fonction Path.glob() nous renvoie une liste d’objets WindowsPath qui correspondent au modèle. Avec cette méthode, nous obtenons des objets de chemin spécifiques à notre système d’exploitation.

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

Article connexe - Python File