La soluzione è usare un elenco per il tuo comando
command = ["exp", "userid=user/[email protected]", "file=dump.dmp"]
process = subprocess.Popen(command, stdout=subprocess.PIPE)
quindi leggi process.stdout riga per riga:
line = process.stdout.readline()
in questo modo puoi aggiornare la GUI senza aspettare. SE il sottoprocesso in esecuzione (exp) svuota l'output. È possibile che l'output sia memorizzato nel buffer, quindi non vedrai nulla fino a quando il buffer di output non sarà pieno. Se è così, probabilmente sei sfortunato.