Я вызываю rtmpdump через подпроцесс и пытаюсь перенаправить его вывод в файл. Проблема в том, что я просто не могу перенаправить ее.Python: Как перенаправить этот вывод?
Я попытался сначала установить sys.stdout в открытый файл. Это работает, скажем, ls, но не для rtmpdump. Я также попытался установить sys.stderr, чтобы убедиться, и он также не работал.
Я попытался использовать «>> файл» с аргументом командной строки, но опять же он не работает.
Также для записи Eclipse по какой-либо причине печатает вывод rtmpdump, даже если я использую subprocess.call вместо subprocess.check_output и не требует вызова метода печати. Это черная магия!
Любые предложения?
Редактировать: Вот пример кода.
# /!\ 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' обычно перенаправляется на' stdout' родителя, ничего не делая по умолчанию. Не могли бы вы опубликовать код, который у вас есть? –
См. Мой ответ ниже. Вы можете использовать subprocess.popen (..) – pyfunc
@pyfunc: Я пытаюсь понять, как использовать popen, я попробую. – dmc