La solution est d'utiliser une liste pour votre commande
command = ["exp", "userid=user/[email protected]", "file=dump.dmp"]
process = subprocess.Popen(command, stdout=subprocess.PIPE)
puis vous lisez process.stdout ligne par ligne :
line = process.stdout.readline()
de cette façon, vous pouvez mettre à jour l'interface graphique sans attendre. SI le sous-processus que vous exécutez (exp) vide la sortie. Il est possible que la sortie soit mise en mémoire tampon, alors vous ne verrez rien jusqu'à ce que la mémoire tampon de sortie soit pleine. Si tel est le cas, vous n'avez probablement pas de chance.