使用Python调用MEncoder的一些参数
题
我会说,我非常,非常新的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成没有空格字符内它的名字(而非程序文件)的目录。
不隶属于 StackOverflow