'qui' équivalent de la fonction en Python
J'ai besoin de l'environnement d'installation en exécutant which abc
de commande.
Est-il un Python équivalent en fonction de la which
commande?
C'est mon code.
cmd = ["which","abc"]
p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
res = p.stdout.readlines()
if len(res) == 0: return False
return True
- Même dans le shell lui-même,
which
lui-même n'est pas un bon choix pour détecter si une commande est installé. Reference - Double Possible de Test si exécutable existe en Python?
Vous devez vous connecter pour publier un commentaire.
Il est
distutils.spawn.find_executable()
sur Python 2.4+PATH
viawhere.exe
) pour moi sur Windows.Je sais que c'est une vieille question, mais si vous arrive d'être en utilisant Python 3.3,+ vous pouvez utiliser
shutil.which(cmd)
. Vous pouvez trouver de la documentation ici. Il a l'avantage d'être dans la bibliothèque standard.Un exemple serait de la sorte:
(Question similaire)
Voir le Tordu de mise en œuvre: tordu.python.procutils.qui
Il n'y a pas une commande pour le faire, mais vous pouvez effectuer une itération sur
environ["PATH"]
et de regarder si le fichier existe, qui est en fait ce quewhich
n'.Bonne chance!
os.path.sep
au lieu de/
etos.pathsep
au lieu de:
Vous pouvez essayer quelque chose comme ce qui suit:
PATHEXT
en compteC'est l'équivalent de la commande, qui non seulement vérifie si le fichier existe, mais s'il est exécutable:
Si vous utilisez
shell=True
, votre commande sera exécutée par le shell du système, qui va automatiquement trouver le binaire sur le chemin:shell=True
il est recherché dans le chemin, mais il n'aide pas, si vous voulez trouver les commandes existe.Voici une version d'une ligne de précédentes réponses:
utilisé comme:
TypeError: list object is not an iterator
.