Bonjour ,

Je suis en train de coder une petite application. Dans son utilisation sous windows, je dois passer par un .exe pour faire fonctionner une partie du log.

Dans la partie qui m'amène ici, je dois détecter les lecteurs disponibles (je passe par psutil), après je dois détecter sur les lecteurs présents la présence de wkhtmltopdf.exe et déterminer les chemins ...

Ca fonctionne mais c'est hyper long ! ... pour remédier à ça je voudrais qu'au 1er chemin trouvé, dans tous les cas, les boucles s'arrêtent (pour ne collecter qu'un seul chemin).

Voilà mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import psutil, os
 
ll = [p2[p1] for p1, p2 in enumerate(psutil.disk_partitions())]
 
liste_exe_wkhtmltopdf = [os.path.join(chem_parent, nom) for part in ll for chem_parent, sous_reps, fichiers in os.walk(part) for nom in fichiers if os.path.isfile(os.path.join(chem_parent, nom)) and "wkhtmltopdf.exe" in os.path.join(chem_parent, nom)]
 
print(liste_exe_wkhtmltopdf)
 
""" J'obtiens :
 
['D:\\wkhtmltopdf\\bin\\wkhtmltopdf.exe', 'D:\\cours_arts_plastiques\\Cours_Travaux_a_faire__COLLEGE_NOUVEAUX_PROGRAMMES\\script_python_fiches_eleves_feuilles_evaluation\\projet_ArtP\\windows_dependances_portables\\wkhtmltox\\bin\\wkhtmltopdf.exe', 'D:\\cours_arts_plastiques\\Cours_Travaux_a_faire__COLLEGE_NOUVEAUX_PROGRAMMES\\script_python_fiches_eleves_feuilles_evaluation\\projet_ArtP\\SAUV\\windows_dependances_portables\\wkhtmltox\\bin\\wkhtmltopdf.exe', 'D:\\cours_arts_plastiques\\Cours_Travaux_a_faire__COLLEGE_NOUVEAUX_PROGRAMMES\\script_python_fiches_eleves_feuilles_evaluation\\projet_ArtP\\SAUV\\A_dev_pour_version_windows\\windows_dependances_portables\\wkhtmltox\\bin\\wkhtmltopdf.exe', 'D:\\cours_arts_plastiques\\Cours_Travaux_a_faire__COLLEGE_NOUVEAUX_PROGRAMMES\\script_python_fiches_eleves_feuilles_evaluation\\projet_ArtP\\A_dev_pour_version_windows\\windows_dependances_portables\\wkhtmltox\\bin\\wkhtmltopdf.exe', 'D:\\projet_ArtP\\windows_dependances_portables\\wkhtmltox\\bin\\wkhtmltopdf.exe', 'D:\\projet_ArtP_DEV\\A_dev_pour_version_windows\\windows_dependances_portables\\wkhtmltox\\bin\\wkhtmltopdf.exe', 'D:\\projet_ArtP_DEV\\SAUV\\windows_dependances_portables\\wkhtmltox\\bin\\wkhtmltopdf.exe', 'D:\\projet_ArtP_DEV\\SAUV\\A_dev_pour_version_windows\\windows_dependances_portables\\wkhtmltox\\bin\\wkhtmltopdf.exe', 'D:\\projet_ArtP_DEV\\windows_dependances_portables\\wkhtmltox\\bin\\wkhtmltopdf.exe']
 
Dans la liste comprehension je voudrais forcer l'arrêt des boucles pour obtenir :
 
['D:\\wkhtmltopdf\\bin\\wkhtmltopdf.exe']
 
... c'est à dire juste le tout 1er chemin trouvé."""
Est-ce possible ?, si oui pouvez-vous m'aider ?

A bientôt.