Vérifiez l'existence de commandes externes en Python (comme `which`)

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.

Probablement le moyen le plus simple (Python 3.3 et supérieur)

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

Soulagement pour ceux qui sont obligés d'utiliser Python moins de 3,3

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

Etc.

Recommended Posts

Vérifiez l'existence de commandes externes en Python (comme `which`)
Exécuter des commandes externes avec python
Exécution de commandes externes en Python
Rechercher des commandes externes avec python
Vérifiez le comportement du destroyer en Python
Vérifier l'existence du fichier avec python
Vérifier l'existence de tables BigQuery en Java
Vérifiez la nature atrophique de la distribution de probabilité en Python
Python - Vérifiez le type de valeurs
Jugement d'équivalence d'objet en Python
Vérifiez la version OpenSSL de python 2.6
Implémentation du tri rapide en Python
Autoriser l'installation des outils de ligne de commande en Python
Vérifiez le fonctionnement de Python pour .NET dans chaque environnement
Rechercher les fuites de mémoire dans Python
Manipulation des pixels d'image en Python
Comment déterminer l'existence d'un élément sélénium en Python
Appuyez sur une commande en Python (Windows)
Quelque chose comme JS setTimeout en python
Diviser timedelta dans la série Python 2.7
Comment vérifier la taille de la mémoire d'une variable en Python
Échappement automatique des paramètres MySQL en python
Existence du point de vue de Python
Gestion des fichiers JSON en Python
Dans la commande python, python pointe vers python3.8
Implémentation du jeu de vie en Python
Affichage de la forme d'onde audio en Python
Afficher des caractères comme AA en python
Comment vérifier la taille de la mémoire d'un dictionnaire en Python
Vérifiez et déplacez le répertoire en Python
La loi des nombres en python
Implémentation du tri original en Python
Brouillage réversible d'entiers en Python
Quelque chose comme tail -f en Python
Implémentez votre propre commande magique jupyter% timeit, pratique pour la mesure de vitesse, en Python
Changer la saturation et la clarté des spécifications de couleur comme # ff000 dans python 2.5
Vérifions la chaîne d'octets en mémoire du nombre flottant flottant en Python
Modules de fonctions fréquemment utilisées en Python (comme la lecture de fichiers externes)
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
Conversion de la chaîne <-> date (date, datetime) en Python
Pratique d'utilisation de ceci en Python (mauvais)
Théorie générale de la relativité en Python: Introduction
Trouver des fichiers comme Linux Find en Python
Arborescence de sortie des fichiers en Python
Afficher une liste d'alphabets en Python 3
Apprenez le modèle de conception "Commande" en Python
Comparaison des modules de conversion japonais en Python3
Vérifier et recevoir le port série en Python (vérification du port)
Résumé de diverses instructions for en Python
Vérifiez si l'URL existe en Python
Le résultat de l'installation de python sur Anaconda
Comment vérifier la version d'opencv avec python
Modèles Gang of Four (GoF) en Python
Stocker les données RSS dans Zabbix (vérification externe)
Vérifiez le chemin du module importé Python
Principes de base pour exécuter NoxPlayer en Python
Rechercher et vérifier la matrice inverse en Python
Remplacement en bloc des chaînes dans les tableaux Python
Projet Euler # 16 "Somme des pouvoirs" en Python
Décomposer les arguments de commande en une seule ligne en Python
Faites quelque chose comme les transactions Redis en Python