使用Python在文件夹中的每个文件上执行命令

我正在尝试创建一个Python脚本:

>查看文件夹“/ input”
>对于该文件夹中的每个视频,运行mencoder命令(将它们转码为可在手机上播放的内容)
>一旦mencoder完成运行,删除原始视频.

这似乎并不太难,但我吮吸python 🙂

关于脚本应该是什么样子的任何想法?

奖金问题:我应该使用

os.system

要么

subprocess.call

Subprocess.call似乎允许更易读的脚本,因为我可以像这样编写命令:

cmdLine = [‘mencoder’,
sourceVideo,
‘-ovc’,
‘copy’,
‘-oac’,
‘copy’,
‘-ss’,
’00:02:54′,
‘-endpos’,
’00:00:54′,
‘-o’,
destinationVideo]

编辑:好的,这有效:

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')

我已经删除了mencoder命令,为了清楚起见,因为我还在努力.

感谢大家的投入.

最佳答案
要查找所有文件名,请使用os.listdir().

然后循环文件名.像这样:

import os
for filename in os.listdir('dirname'):
     callthecommandhere(blablahbla, filename, foo)

如果您更喜欢子进程,请使用子进程. 🙂

转载注明原文:使用Python在文件夹中的每个文件上执行命令 - 代码日志