Trouver des fichiers par nom sur le disque dur avec Python

Table des matières

Dans ce tutoriel, nous allons voir comment implémenter un petit programme Python qui se chargera de rechercher des fichiers contenant un certain nom, dans le répertoire que nous lui passons (si nous ne lui passons un répertoire, il cherchera à partir du répertoire courant). Nous verrons que c'est un code très simple à faire et à comprendre.

NoterL'exemple que je vais mettre dans ce tutoriel, je vais l'exécuter en Python 3.X.

Je laisse d'abord le code complet et ci-dessous il sera expliqué partie par partie :

 import sys, os search = répertoire "solvetic" = os.getcwd () total = 0 if (len (sys.argv)> 1) : if (pas os.path.isdir (sys.argv [1])) : print (sys.argv [1], "non reconnu comme répertoire") sys.exit (1) répertoire = sys.argv [1] pour la racine, le répertoire, les fichiers dans os.walk (répertoire) : pour le fichier dans les fichiers : si ( recherche dans file.lower()): print (root + "\" + file) total + = 1 print ("Au total il y a", total, "fichiers avec", recherche) 
Maintenant, nous allons commencer l'explication du code, si vous savez déjà quelque chose sur Python, vous l'avez sûrement déjà compris en grande partie.

Pour réaliser ce programme, nous allons utiliser le module système d'exploitation pour interagir avec le système d'exploitation, et le système contrôler l'entrée de l'argument et la sortie éventuelle sans brusquerie. Ce sont des modules que nous avons déjà en Python, nous n'avons donc rien d'autre à installer.

 importer sys, os 
Ensuite, nous allons définir une variable appelée recherche avec le mot que nous allons rechercher (nous pourrions le recevoir en paramètre, mais dans ce cas, pour l'exemple ce sera solvetic), un autre répertoire appelé qui contiendra le chemin d'où nous allons commencer (par défaut le répertoire courant à partir duquel nous exécutons le programme). Et la dernière variable que nous voyons au total est de garder une trace des fichiers que nous trouvons.
 recherche = répertoire "solvetic" = os.getcwd () total = 0 
Maintenant, nous allons vérifier si nous avons reçu des paramètres et si oui, nous vérifions s'ils nous ont donné un répertoire, si c'est vrai, nous sauvegardons le répertoire dans la variable "répertoire", sinon, cette variable reste la même, c'est-à-dire avec le répertoire courant.
 if (len (sys.argv)> 1): if (pas os.path.isdir (sys.argv [1])): print (sys.argv [1], "non reconnu comme répertoire") sys.exit ( 1) répertoire = sys.argv [1] 
L'étape suivante est une boucle, la fonction os.walk (répertoire) lira les noms des fichiers de manière récursive, c'est-à-dire qu'elle parcourra les fichiers et les répertoires du répertoire que nous lui transmettons. Ensuite, la seule chose qui nous intéresse dans cet exemple est de montrer les fichiers qui contiennent le mot solvetic, nous allons donc parcourir les fichiers et vérifier s'ils ont le mot recherché, pour trouver également les fichiers qui contiennent le mot avec une majuscule nous utilisons la fonction lower, qui ne fait que laisser la chaîne entière en minuscule. Comme nous sommes intéressés à voir le chemin complet du fichier, nous concaténons la variable racine avec le fichier, puisque root renvoie le répertoire que nous avons lu.
 pour root, dir, files in os.walk (répertoire) : pour file in files : if (search in file.lower()) : print (root + "\" + file) total + = 1
Juste avant de terminer le programme, il va peindre sur l'écran une ligne avec le nombre de fichiers trouvés avec le nom de solvetic.
 print ("Au total il y a", total, "fichiers avec", recherche) 
Maintenant je vais mettre quelques captures d'écran de l'exécution du programme, puis de l'exécution sans paramètre, c'est-à-dire qu'il fera la recherche à partir du répertoire courant :

Les éléments suivants pour rechercher à partir du disque C sous Windows :

Et enfin une capture lorsque quelque chose qui n'est pas un répertoire est passé en paramètre :

Et le tutoriel est terminé, si vous souhaitez approfondir le module, voici un lien vers la documentation officielle, elle est en anglais.

Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave