Lorsque j'ai affaire à un programme externe en Python, je voulais vérifier si le programme externe existait avant de l'exécuter, je l'ai donc vérifié. Vous pouvez également rechercher les erreurs d'exécution, mais avant cela, vous souhaitez uniquement vérifier qu'il est disponible. Ou vous pouvez l'utiliser lorsque vous souhaitez connaître le chemin où le programme est installé.
Les programmes externes sont censés être exécutés par subprocess.Popen
etc.
J'ai essayé les versions 3.5.1 et 2.7.11 de Python.
Utilisez la fonction which du module shutil. Renvoie le chemin de la commande si la commande est exécutable ou «None» si elle n'est pas trouvée.
import shutil
print(shutil.which('ls')) # > '/bin/ls'
print(shutil.which('ssss')) # > None
shutil.which
n'est pas rétroporté et ne peut pas être utilisé dans Python 2.7.
Je pense qu'il est préférable de passer immédiatement à la version 3.5 ou supérieure, mais je pense que certaines personnes ne le peuvent pas, alors je vais vous montrer comment l'utiliser avec l'ancien Python.
Vous pouvez faire de même avec shutil.which
avec distutils.spawn.find_executable
.
http://stackoverflow.com/questions/5226958/which-equivalent-function-in-python
import distutils.spawn
print(distutils.span.find_executabl('ls')) # > '/bin/ls'
print(distutils.span.find_executabl('ssss')) # > None
Si vous ne le savez pas, vous ne pouvez pas le trouver ... Cette méthode peut être utilisée en 3 séries, mais distutils a été traité comme mineur et il n'y avait pas de documentation. http://docs.python.jp/3/library/distutils.html
Le point de piège est
-- shutil
est au singulier, mais distutils
est au pluriel
, le module
spawn ne sera pas importé, vous devez donc ʻimport distuils.spawn
ou from distutils import spawn
Etc.
Recommended Posts