Ich rtmpdump über Subprozess aufrufen und versuchen, seine Ausgabe in eine Datei umzuleiten. Das Problem ist, dass ich es einfach nicht umleiten kann.Python: Wie leite ich diese Ausgabe um?
Ich versuchte zuerst, die sys.stdout auf die geöffnete Datei einzurichten. Dies funktioniert zum Beispiel für ls, aber nicht für rtmpdump. Ich habe auch versucht, die sys.stderr nur um sicherzustellen, und es hat auch nicht funktioniert.
Ich versuchte dann mit einer ">> file" mit dem Kommandozeilenargument, aber es scheint wieder nicht zu funktionieren.
Auch für die Aufzeichnung, aus irgendeinem Grund, druckt Eclipse rtmpdump die Ausgabe, auch wenn ich subprocess.call anstelle von subprocess.check_output verwenden, und ohne die Druckmethode aufrufen müssen. Das ist schwarze Magie!
Irgendwelche Vorschläge?
Edit: Hier ist ein Beispielcode.
# /!\ note: need to use os.chdir first to get to the folder with rtmpdump!
command = './rtmpdump -r rtmp://oxy.videolectures.net/video/ -y 2007/pascal/bootcamp07_vilanova/keller_mikaela/bootcamp07_keller_bss_01 -a video -s http://media.videolectures.net/jw-player/player.swf -w ffa4f0c469cfbe1f449ec42462e8c3ba16600f5a4b311980bb626893ca81f388 -x 53910 -o test.flv'
split_command = shlex.split(command)
subprocess.call(split_command)
'stdout' in der Regel auf die' stdout' der Eltern umgeleitet wird, ohne etwas zu tun standardmäßig. Könnten Sie den Code, den Sie gerade haben, posten? –
Siehe meine Antwort unten. Sie könnten subprocess.popen (..) verwenden – pyfunc
@pyfunc: Ich versuche zu verstehen, wie man popen verwendet, ich werde es versuchen. – dmc