Wywołuję rtmpdump poprzez podproces i próbuję przekierować jego wyjście do pliku. Problem polega na tym, że po prostu nie mogę go przekierować.Python: Jak mogę przekierować to wyjście?
Próbowałem najpierw skonfigurować sys.stdout do otwartego pliku. Działa to dla, powiedzmy, ls, ale nie dla rtmpdump. Próbowałem również ustawić sys.stderr tylko po to, aby się upewnić, a także nie działało.
Próbowałem następnie używając ">> pliku" z argumentem wiersza poleceń, ale znowu nie wydaje się działać.
Również dla rekordu, z jakiegoś powodu, Eclipse drukuje dane wyjściowe rtmpdump, nawet jeśli używam subprocess.call zamiast subprocess.check_output i bez konieczności wywoływania metody drukowania. To jest czarna magia!
Wszelkie sugestie?
Edytuj: Oto przykładowy kod.
# /!\ 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' zwykle zostaje przekierowany do rodzica' stdout' bez robienia czegokolwiek domyślnie. Czy możesz opublikować kod, który masz obecnie? –
Zobacz poniżej moją odpowiedź. Możesz użyć podprocesu.popen (..) – pyfunc
@pyfunc: Próbuję zrozumieć, jak używać popena, spróbuję. – dmc