Maison >développement back-end >Tutoriel Python >Répertorier tous les fichiers d'un type spécifique dans un répertoire en utilisant Python
Les fonctionnalités flexibles et les bibliothèques puissantes de Python facilitent la manipulation des fichiers et des répertoires. Python vous aide à générer, mettre à jour et récupérer des données à partir de fichiers et de dossiers. Une exigence typique est une liste de répertoires de tous les fichiers d'un type spécifique. Ce didacticiel vous guide tout au long du processus à l'aide d'exemples concrets pour démontrer la maîtrise de Python dans les opérations du système de fichiers.
La bibliothèque Python standard possède de nombreux modules capables de gérer les opérations du système de fichiers. Les modules os et glob sont deux exemples de modules bien connus.
os module - Le module os de Python fournit des outils pour communiquer avec le système d'exploitation. Il fournit des opérations pour ajouter, supprimer et parcourir des répertoires, ce qui est très utile pour les opérations sur les fichiers et les répertoires.
module glob−Un autre outil utile est le module glob, qui utilise les règles du shell Unix pour trouver tous les noms de chemin qui correspondent à un modèle spécifique. Étant donné qu'il prend en charge les caractères génériques tels que * et ?, il convient parfaitement à nos objectifs.
Plongeons dans les exemples pour mieux comprendre leur utilisation.
Ici, nous utiliserons les modules os et fnmatch en Python pour lister tous les fichiers .txt présents dans un répertoire.
import os import fnmatch def list_files(directory, filetype): for file in os.listdir(directory): if fnmatch.fnmatch(file, filetype): print(file) list_files('/home/user/documents', '*.txt')
La fonction os.listdir() dans cet extrait de code affiche une liste de chaque fichier et répertoire du répertoire spécifié. La fonction fnmatch() du module fnmatch détermine ensuite si chaque fichier correspond au modèle de type de fichier spécifié. Si les types de fichiers correspondent, imprimez le nom du fichier.
Utilisons maintenant le module glob pour lister tous les fichiers image .jpg présents dans un répertoire.
import glob def list_files(directory, filetype): for file in glob.glob(f"{directory}/{filetype}"): print(file) list_files('/home/user/images', '*.jpg')
La fonction glob.glob() est utilisée dans cet exemple pour renvoyer une liste de chemins qui correspondent au modèle de nom de chemin. Le chemin du répertoire et le type de fichier sont combinés dans la chaîne f. La fonction imprime ensuite les fichiers .jpg dans le répertoire.
Grâce au module glob, nous pouvons également rechercher de manière récursive des types spécifiques de fichiers dans un répertoire et ses sous-répertoires. Par exemple, recherchons le fichier image all.png.
import glob def list_files(directory, filetype): for file in glob.glob(f"{directory}/**/{filetype}", recursive=True): print(file) list_files('/home/user/images', '*.png')
Le ** dans la chaîne de chemin de cet extrait demande à glob d'effectuer une recherche récursive dans tous les dossiers et sous-répertoires. La fonctionnalité récursive est activée avec l'option recursive=True.
Vous pouvez utiliser les modules os et fnmatch pour localiser et lister chaque fichier Python.py dans un répertoire spécifique par -
import os import fnmatch def list_files(directory, filetype): for file in os.listdir(directory): if fnmatch.fnmatch(file, filetype): print(file) list_files('/home/user/my_python_projects', '*.py')
Cela listera les noms de tous les fichiers .py du répertoire.
Nous pouvons également utiliser os.walk() pour effectuer des recherches récursives. Cette fonction parcourt l'arborescence des répertoires de haut en bas ou de bas en haut pour créer des noms de fichiers.
import os import fnmatch def list_files(directory, filetype): for dirpath, dirnames, files in os.walk(directory): for file in files: if fnmatch.fnmatch(file, filetype): print(os.path.join(dirpath, file)) list_files('/home/user/projects', '*.txt')
Utilisez la fonction os.walk() dans ce script pour parcourir l'arborescence des répertoires. Utilisez la fonction fnmatch.fnmatch() pour comparer chaque fichier au type de fichier souhaité et utilisez os.path.join() pour obtenir le chemin complet du fichier correspondant.
De nombreux scénarios de codage nécessitent de répertorier tous les fichiers d'un type spécifique dans un répertoire, et la vaste collection de modules de Python (tels que os et glob) offre un moyen simple d'y parvenir. Les nombreux exemples pratiques fournis dans cet article montrent très clairement comment utiliser ces modules pour lister les fichiers d'un répertoire et effectuer des recherches récursives dans le répertoire et ses sous-répertoires.
Être capable de travailler avec des fichiers et des répertoires dans une boîte à outils de programmation est essentiel. Ces fonctionnalités sont pratiques pour organiser les fichiers de projet, afficher les fichiers journaux et même automatiser les fonctions du système. Continuez à explorer ces routines pour en savoir plus sur les puissantes capacités de gestion du système de fichiers de Python.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!