Llamo a rtmpdump por subproceso y trato de redirigir su salida a un archivo. El problema es que simplemente no puedo redirigirlo.Python: ¿Cómo redirijo esta salida?
Intenté primero configurar el sys.stdout en el archivo abierto. Esto funciona para, digamos, ls, pero no para rtmpdump. También intenté configurar el sys.stderr solo para asegurarme y tampoco funcionó.
Intenté entonces usar un ">> archivo" con el argumento de la línea de comandos, pero de nuevo parece que no funciona.
También para el registro, por alguna razón, Eclipse imprime la salida de rtmpdump incluso si utilizo subprocess.call en lugar de subprocess.check_output, y sin tener que llamar al método de impresión. ¡Esto es magia negra!
¿Alguna sugerencia?
Editar: Aquí hay algunos ejemplos de código.
# /!\ 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' por lo general se le redirecciona a' stdout' de los padres sin hacer nada por defecto. ¿Podría publicar el código que tiene actualmente? –
Ver mi respuesta a continuación. Podría usar subprocess.popen (..) – pyfunc
@pyfunc: Estoy tratando de entender cómo usar popen, lo intentaré. – dmc