Użycie Pythona do wykonania polecenia dla każdego pliku w folderze
Próbuję utworzyć skrypt Pythona, który:
Zajrzyj do folderu „/ input”Dla każdego filmu w tym folderze uruchom komendę mencoder (aby przekodować je do grywalnej na moim telefonie)Po zakończeniu pracy mencoder usuń oryginalny film.To nie wydaje się zbyt trudne, ale ssam w pythonie :)
Jakieś pomysły na to, jak powinien wyglądać skrypt?
Pytanie dodatkowe: Czy powinienem użyć
os.system
lub
subprocess.call
?
Wywołanie podprocesu wydaje się pozwalać na bardziej czytelny skrypt, ponieważ mogę napisać takie polecenie:
cmdLine = ['mencoder', sourceVideo, '-ovc', 'copy', '-oac', 'copy', '-ss', '00: 02: 54 ',' -endpos ', '00: 00: 54 ',' -o ', destinationVideo]
EDYCJA: Ok, to działa:
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')
Usunąłem polecenie mencodera, dla jasności i dlatego, że wciąż nad nim pracuję.
Dziękujemy wszystkim za wkład.