Je dois saisir la durée d'un fichier vidéo via Python dans le cadre d'un script plus important. Je sais que je peux utiliser FFMPEG pour saisir la durée, mais je dois pouvoir enregistrer cette sortie comme une variable de retour dans Python. Je pensais que cela fonctionnerait, mais cela me donne une valeur de 0: suis-je en train de rediriger la sortie? Ou est là simplement aucun moyen de piloter la sortie terminale dans le python? P> p>
6 Réponses :
Voir merveilleusement écrit Module Python du blog de la semaine . P> p> OS.System code> renvoie une valeur de retour indiquant le succès ou l'échec de la commande. Il ne renvoie pas la sortie de STDOUT OU STDERR. Pour saisir la sortie de stdout (ou stardr), utilisez
sous-processus.popen code>.
os.System renvoie le code de sortie de la commande exécutée, pas sa sortie. Pour ce faire, vous auriez besoin d'utiliser des commandes.getoutput (obsolète) ou sous-processus.popen:
mode beaucoup plus simple
import commands cmd = 'ls' output = commands.getoutput(cmd) print output
#!/usr/bin/python3 import subprocess nginx_ver = subprocess.getstatusoutput("nginx -v") print(nginx_ver)