11
votes

Toute façon d'attribuer une sortie de terminal à la variable avec Python?

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: xxx

suis-je en train de rediriger la sortie? Ou est là simplement aucun moyen de piloter la sortie terminale dans le python?


0 commentaires

6 Réponses :


23
votes

OS.System 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 . xxx

Voir merveilleusement écrit Module Python du blog de la semaine .


0 commentaires

1
votes

Vous voulez probablement Subprocess.Popen .


0 commentaires

3
votes

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: xxx


0 commentaires

2
votes

mode beaucoup plus simple xxx


0 commentaires

-2
votes
import commands
cmd = 'ls'
output = commands.getoutput(cmd)
print output

0 commentaires

-1
votes
#!/usr/bin/python3
import subprocess 
nginx_ver = subprocess.getstatusoutput("nginx -v")
print(nginx_ver)

0 commentaires