Eventuali duplicati:
Parsing a stdout in PythonRedirect sottoprocesso ad una variabile come una stringa
Con il seguente comando, stampa '640x360'
>>> command = subprocess.call(['mediainfo', '--Inform=Video;%Width%x%Height%',
'/Users/david/Desktop/1video.mp4'])
640x360
Come vorrei impostare una variabile uguale alla stringa dell'output, quindi posso ottenere x='640x360'
? Grazie.
Aggiornamento: le risposte possono essere trovate qui: Parsing a stdout in Python. Questo ha funzionato per me:
>>> p1 = subprocess.Popen(['mediainfo', '--Inform=Video;%Width%x%Height%',
'/Users/david/Desktop/10stest720p.mov'],stdout=PIPE)
>>> output=p1.communicate()[0].strip('\n')
>>> output
'1280x688'
ero solo digitando la stessa risposta, ma volevo solo dire che suggerirei di usare Popen piuttosto che chiamare perché è leggermente più esplicito e fa la stessa cosa. subprocess.call è solo una comoda funzione per Popen. – Vorticity
ma call() stampa l'output e restituisce il codice di uscita del processo, ovvero 0 se l'elaborazione è superata. – rocksportrocker
Questo è un buon punto di cui mi ero dimenticato. Dato che, call() potrebbe essere il modo migliore per andare in pre 2.7, ma la risposta di Scott Anderson è probabilmente migliore in 2.7 poiché controlla automaticamente lo stato di uscita nominale. – Vorticity