使用Python通过一些参数调用Mencoder

时间:2009-07-07 05:28:55

标签: python windows mencoder

我首先要说的是我对Python非常非常新。

我曾经有一个Windows / Dos批处理文件,以便使用正确的参数集启动Mencoder,而不必每次都输入它们。

当我尝试改进脚本时,事情变得很混乱,我认为这是一个尝试用python编写代码的好机会。

我想到了:

#!/usr/bin/python
import sys, os

#Path to mencoder
mencoder = "C:\Program Files\MPlayer-1.0rc2\mencoder.exe"
infile = "holidays.avi"
outfile = "holidays (part1).avi"
startTime = "00:48:00"
length = "00:00:15"

commande = "%s %s -ovc copy -oac copy -ss %s -endpos %s -o %s"
os.system(commande % (mencoder, infile, startTime, length, outfile))

#Pause
raw_input() 

但这不起作用,Windows抱怨“C:\ Program”无法识别命令。

我试图在这里和那里放一些“\”,但这没有帮助。

4 个答案:

答案 0 :(得分:4)

Python有两种类型的引号,“和'它们完全相同。所以在字符串中获取引号的最简单方法是说'”C:\ Program Files \ MPlayer-1.0rc2 \ mencoder.exe“'。

使用原始前缀(即r'“C:\ Program Files \ MPlayer-1.0rc2 \ mencoder.exe”)是一个好主意,但这不是错误,因为没有反斜杠后跟一封逃生码的信件。因此,你的原始字符串不会因为在它前面有一个r而改变。

答案 1 :(得分:1)

如果你在windows上做的话,

使用两个引号而不是一个引号。

"\\"

答案 2 :(得分:1)

我是Python的新手,但我知道当我看到这个问题时,要修复它,文件(可执行文件或参数)必须在引号中。只需在包含空格的任何文件之前和之后添加 \“以区分命令行参数。因此,这也适用于您的outfile变量。代码应如下所示。

#!/usr/bin/python
import sys, os

#Path to mencoder
mencoder = "\"C:\Program Files\MPlayer-1.0rc2\mencoder.exe\""
infile = "holidays.avi"
outfile = "\"holidays (part1).avi\""
startTime = "00:48:00"
length = "00:00:15"

commande = "%s %s -ovc copy -oac copy -ss %s -endpos %s -o %s"
os.system(commande % (mencoder, infile, startTime, length, outfile))

#Pause
raw_input()

答案 3 :(得分:0)

您甚至可以将mencoder.exe放入一个目录中,该目录的名称中没有空格字符(与Program Files相对)。