Duplicar posibles:
Parsing a stdout in Pythonredirección subproceso a una variable como una cadena
con el siguiente comando, imprime '640x360'
>>> command = subprocess.call(['mediainfo', '--Inform=Video;%Width%x%Height%',
'/Users/david/Desktop/1video.mp4'])
640x360
¿Cómo iba a establecer una variable igual a la cadena de la salida, entonces puedo obtener x='640x360'
? Gracias.
Actualización: las respuestas se pueden encontrar aquí: Parsing a stdout in Python. Esto funcionó para mí:
>>> p1 = subprocess.Popen(['mediainfo', '--Inform=Video;%Width%x%Height%',
'/Users/david/Desktop/10stest720p.mov'],stdout=PIPE)
>>> output=p1.communicate()[0].strip('\n')
>>> output
'1280x688'
yo era sólo escribiendo la misma respuesta, pero solo quería decir que sugeriría usar Popen en lugar de llamar porque es un poco más explícito y hace lo mismo. subprocess.call es solo una función de conveniencia para Popen. – Vorticity
pero call() imprime el resultado y devuelve el código de salida de su proceso, es decir 0 si procesa correctamente. – rocksportrocker
Ese es un buen punto que había olvidado. Dado que, call() puede ser la mejor forma de entrar en el pre 2.7, pero la respuesta de Scott Anderson probablemente sea mejor en 2.7 ya que automáticamente verifica el estado de salida nominal. – Vorticity