De lancer des programmes de mon Python scripts, je suis en utilisant la méthode suivante:
def execute(command):
process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
output = process.communicate()[0]
exitCode = process.returncode
if (exitCode == 0):
return output
else:
raise ProcessException(command, exitCode, output)
Donc quand je lance un processus d' Process.execute("mvn clean install")
, mon programme attend jusqu'à ce que le processus est terminé, et seulement puis-je obtenir la production complète de mon programme. C'est gênant si je suis en cours d'exécution d'un processus qui prend un certain temps pour terminer.
Puis-je laisser mon programme d'écriture le processus de sortie de ligne par ligne, en interrogeant le processus de sortie avant qu'il ne finisse dans une boucle ou quelque chose?
*[MODIFIER] Désolé, je n'ai pas chercher très bien avant de poster cette question. Le filetage est en fait la clé. Trouvé un exemple qui montre comment le faire: * Python Sous-Processus.Popen à partir d'un thread