我正在尝试创建一个Python脚本,它将:
这看起来不太难,但我对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.walk在目录内容上递归迭代:
这里的os.system和subprocess.call之间没有真正的区别——除非您必须处理命名奇怪的文件(文件名包括空格、引号等)。如果是这样的话,subprocess.call肯定更好,因为您不需要对文件名进行任何shell引用。当您需要接受任何有效的shell命令(例如从配置文件中的用户接收到的命令)时,os.system会更好。
要查找所有文件名,请使用
os.listdir()
。然后在文件名上循环。就像这样:
如果您喜欢子流程,请使用子流程。:-)
Python可能会为此而大肆杀戮。
相关问题 更多 >
编程相关推荐