Ich benötige eine Methode um die Ausgabe über subprocess ausgeführte Konsolen Befehle sofort zu erhalten, nicht erst nachdem der Befehl sich beendet hat
Habe bereits einige Zeit gegoogled ("subprocess realtime output" usw) und auch ein paar angeblich funktionierende Lösungen gefunden, allerdings klappt das nicht in Kombination mit Tkinter - also auf der Konsole kommt sofort der output aber in Tkinter erst nachdem der Befehl beendet wurde
Mein aktuelles Script sieht so aus: http://codepad.org/7VEtLaCj
Hauptmerkmal ist denk ich run_command, was ich auch schon wie folgt im Einsatz hatte aber das auch nicht zufriedenstellend funktionierte:
[code=php]
def run_command(command):
process = Popen(shlex.split(command), close_fds=True, stdout=PIPE, bufsize=1)
while True:
output = process.stdout.readline()
if output == '' and process.poll() is not None:
break
if output:
Log.insert(tkinter.END, (output))
print(output,)
process.stdout.flush()
process.stdout.close()
process.wait()
rc = process.poll()
return rc
[/php]
Weiß jemand Rat?
PS: threading und multiprocessing möchte ich vermeiden.