我会说,我非常,非常新的Python的开始。

我曾经有以设定的参数的右启动MEncoder的一个Windows / DOS批处理文件,而不必键入他们各自的时间。

事情变得凌乱,当我试图改善我的剧本,我决定,这将是尝试在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:\程序”无法识别的命令

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

有帮助吗?

解决方案

Python中有两种类型的报价,“和'。他们是完全平等的,以获得报价的字符串,所以最简单的办法是说‘‘C:\ Program Files文件\的MPlayer-1.0rc2 \ mencoder.exe’’。

使用原始前缀(即R“‘C:\ Program Files文件\的MPlayer-1.0rc2 \ mencoder.exe’”)是一个好主意,但这里不是错误,因为没有一个反斜杠后跟信是换码。所以,你的原始字符串不会通过在它前面的R改变的。

其他提示

使用两个引号,而不是之一,如果你在Windows上做的事情。

"\\"

我是新来的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()

您甚至可以把mencoder.exe成没有空格字符内它的名字(而非程序文件)的目录。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top