Voici le code Python pour exécuter une commande arbitraire retour de son stdout
de données, ou de soulever une exception de non-zéro des codes de sortie:
proc = subprocess.Popen(
cmd,
stderr=subprocess.STDOUT, # merge stdout and stderr
stdout=subprocess.PIPE,
shell=True)
communicate
est utilisé pour attendre que le processus de sortie de:
stdoutdata, stderrdata = proc.communicate()
L' subprocess
module ne prend pas en charge timeout--possibilité de tuer un processus en cours d'exécution pour plus de X secondes--par conséquent, communicate
peut prendre une éternité à s'exécuter.
Quelle est la plus simple façon de mettre en œuvre les délais dans un programme en Python destiné à être exécuté sur Windows et Linux?