Uso de Python para ejecutar un comando en cada archivo en una carpeta
Estoy tratando de crear un script en Python que:
Busque en la carpeta "/ input"Para cada video en esa carpeta, ejecute un comando mencoder (para transcodificarlos a algo que pueda reproducirse en mi teléfono)Una vez que mencoder haya terminado su ejecución, borre el video original.Eso no parece demasiado difícil, pero apesto en Python :)
¿Alguna idea sobre cómo debería verse el guión?
Pregunta extra: ¿Debo usar
os.system
o
subproceso.call
?
Subprocess.call parece permitir un script más legible, ya que puedo escribir el comando de esta manera:
cmdLine = ['mencoder', sourceVideo, '-ovc', 'copy', '-oac', 'copy', '-ss', '00: 02: 54 ',' -endpos ', '00: 00: 54 ',' -o ', video de destino]
EDIT: Ok, eso funciona:
import os, subprocess
bitrate = '100'
mencoder = 'C:\\Program Files\\_utilitaires\\MPlayer-1.0rc2\\mencoder.exe'
inputdir = 'C:\\Documents and Settings\\Administrator\\Desktop\\input'
outputdir = 'C:\\Documents and Settings\\Administrator\\Desktop\\output'
for fichier in os.listdir(inputdir):
print 'fichier :' + fichier
sourceVideo = inputdir + '\\' + fichier
destinationVideo = outputdir + '\\' + fichier[:-4] + ".mp4"
commande = [mencoder,
'-of',
'lavf',
[...]
'-mc',
'0',
sourceVideo,
'-o',
destinationVideo]
subprocess.call(commande)
os.remove(sourceVideo)
raw_input('Press Enter to exit')
He eliminado el comando mencoder, para mayor claridad y porque todavía estoy trabajando en ello.
Gracias a todos por su aporte.