Comment utiliser le module glob de Python pour rechercher des fichiers par modèle

Le module glob de Python est un outil puissant pour rechercher des fichiers et des répertoires correspondant à un modèle spécifié. Il est particulièrement utile lorsque vous devez rechercher des fichiers avec des extensions ou des noms spécifiques dans un répertoire. Cet article vous guidera dans l'utilisation du module glob pour localiser efficacement des fichiers.

Introduction au module glob

Le module glob permet de répertorier les fichiers et les répertoires à l'aide de caractères génériques de type shell Unix. Cela est utile pour des tâches telles que la recherche de fichiers, le traitement par lots, etc. Le module comprend des fonctions qui vous permettent de faire correspondre les noms de fichiers avec des modèles, ce qui facilite la gestion des fichiers.

Utilisation de base de glob

Pour utiliser le module glob, vous devez l'importer, puis utiliser la fonction glob.glob() pour rechercher les fichiers correspondant à un modèle. Les modèles que vous utilisez peuvent inclure des caractères génériques tels que * (correspond à n'importe quel nombre de caractères) et ? (correspond à un seul caractère).

Exemples

Recherche de fichiers avec une extension spécifique

Par exemple, pour trouver tous les fichiers avec l'extension .txt dans un répertoire, vous pouvez utiliser:

import glob

# Find all .txt files in the current directory
txt_files = glob.glob('*.txt')
print(txt_files)

Recherche de fichiers dans un sous-répertoire

Pour rechercher tous les fichiers avec une extension spécifique dans un sous-répertoire, spécifiez le sous-répertoire dans le modèle:

import glob

# Find all .jpg files in the 'images' subdirectory
jpg_files = glob.glob('images/*.jpg')
print(jpg_files)

Utilisation des caractères génériques

Les caractères génériques peuvent vous aider à rechercher une plus large gamme de fichiers. Par exemple, pour rechercher tous les fichiers texte commençant par "report":

import glob

# Find all files starting with 'report' and ending with .txt
report_files = glob.glob('report*.txt')
print(report_files)

Recherche de fichiers avec plusieurs extensions

Vous pouvez également utiliser glob pour rechercher des fichiers avec plusieurs extensions en utilisant un modèle qui inclut plusieurs correspondances génériques:

import glob

# Find all .txt and .md files
files = glob.glob('*.txt') + glob.glob('*.md')
print(files)

Utilisation avancée

En plus des modèles simples, le module glob prend en charge des modèles plus complexes. Par exemple, vous pouvez utiliser des modèles tels que ** pour rechercher des répertoires de manière récursive.

Recherche récursive

Pour rechercher des fichiers de manière récursive dans tous les sous-répertoires, utilisez le modèle ** avec l'argument recursive=True:

import glob

# Find all .py files in the current directory and subdirectories
py_files = glob.glob('**/*.py', recursive=True)
print(py_files)

Conclusion

Le module glob est un outil essentiel pour la gestion des fichiers en Python, vous permettant de rechercher des fichiers à l'aide de modèles en toute simplicité. Que vous travailliez avec des types de fichiers spécifiques, que vous recherchiez dans des répertoires ou que vous effectuiez des recherches complexes, glob fournit une solution simple et efficace.