Решението е да използвате списък за вашата команда
command = ["exp", "userid=user/[email protected]", "file=dump.dmp"]
process = subprocess.Popen(command, stdout=subprocess.PIPE)
след това четете process.stdout ред по ред:
line = process.stdout.readline()
по този начин можете да актуализирате GUI без да чакате. АКО подпроцесът, който изпълнявате (exp), изхвърля изхода. Възможно е изходът да е буфериран, тогава няма да видите нищо, докато изходният буфер не се напълни. Ако случаят е такъв, вероятно нямате късмет.