Seite 1 von 1

Wie prüfen, ob Subprocess beendet ?

Verfasst: Freitag 9. Dezember 2005, 00:24
von snakeseven
Hi,
habe eine Thread-gesteuerte MP3 Konvertierung über den Lame Encoder.

(...)

Code: Alles auswählen

import subprocess

commandotext = 'C:/Programme/Lame/lame -f ' + path_save + 'temp.wav' + ' ' + ps
subprocess.Popen(commandotext)
(...)

Blöderweise wird das Konvertieren immer wieder von Neuaufrufen von Lame unterbrochen, was zu unvollständig konvertierten Files führt.
Das Problem ist, daß der Pythoninterpreter keine Rückmeldung von Lame bekommt, wann dieser mit Schreiben des Files fertig ist. Kann ich das irgendwie prüfen ? Python soll erst dann weitermachen, wenn Lame fertig ist.
Seven

Verfasst: Freitag 9. Dezember 2005, 00:43
von snakeseven
http://www.PythonWiki.de hat tatsächlich ein Beispiel dazu:

Code: Alles auswählen

process = subprocess.Popen('ls -l', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# warten, bis der gestartete Prozess zu Ende ist
process.wait()
Schick kurz :wink:

Seven

EDIT (jens): [wiki]Neue Tricks#head-ddf15465a1a1d901c4e06cd7709a7ba0424680fc[/wiki]