167 votes

Exécution de bash script à partir de python

J'ai un problème avec le code suivant :

callBash.py :

import subprocess
print "start"
subprocess.call("sleep.sh")
print "end"

sleep.sh :

sleep 10

Je veux que la "fin" soit imprimée après 10s (je sais que c'est un exemple stupide, je pourrais simplement dormir dans python, mais ce simple fichier sleep.sh était juste un test).

15voto

Harry1992 Points 383

Si chmod ne fonctionne pas, vous pouvez également essayer :

import os
os.system('sh script.sh')
# you can also use bash instead of sh

3voto

Matthew Lang Points 65

Ajout d'une réponse parce que j'ai été dirigé ici après avoir demandé comment exécuter un bash script à partir de python. Vous recevez une erreur OSError: [Errno 2] file not found si votre script prend des paramètres. Disons par exemple que votre script prend en compte un paramètre de temps de sommeil : subprocess.call("sleep.sh 10") ne fonctionnera pas, vous devez le passer sous forme de tableau : subprocess.call(["sleep.sh", 10])

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X