1

我首先要说我对 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

4 回答 4

4

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

使用原始前缀(即 r'"C:\Program Files\MPlayer-1.0rc2\mencoder.exe"')是个好主意,但这不是这里的错误,因为没有一个反斜杠后跟一个字母是一个转义码。所以你的原始字符串不会因为前面有一个 r 而改变。

于 2009-07-07T05:38:10.533 回答
1

如果您在 Windows 上使用两个引号而不是一个引号。

"\\"
于 2010-01-06T20:20:54.523 回答
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()
于 2011-11-20T07:55:05.540 回答
0

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

于 2010-04-21T00:14:30.367 回答