2017-01-06 36 views
0

我用于运行使用下面的命令称为VINA通过CMD线程序:如何将cmd行转换为os.system行?

"\Program Files (x86)\The Scripps Research Institute\Vina\vina.exe" --config conf.txt --log log.txt 

所以,程序都将配置文件来运行,并输出与所述结果的日志文件。我正在使用os.system模块在python中运行程序。但是,我无法像在cmd中那样分配配置文件或日志文件。我想在python是这样的:

os.system('C:/Program Files (x86)/The Scripps Research Institute/Vina/vina.exe' --config conf.txt --log log.txt) 

程序打开真正的快然后关闭,也许是因为它不运行的配置文件。我也尝试把配置放到一个字符串中,如下所示(我正在省略日志的东西,直到我的配置才起作用):

os.system('C:/ Program Files(x86)/ The Scripps Research Institute /Vina/vina.exe”,‘--config conf.txt’)

在这种情况下,我得到的错误:

TypeError: system() takes at most 1 argument (2 given)

如何指定配置文件和日志文件输出任何想法在蟒蛇行,因为我在cmd做?

+0

如何使用os.path并提取路径和然后将其转换为字符串以与OS一起使用。系统 – dhishan

+0

尝试'subprocess.call(['C:/ Program Files(x86)/ Scripps Research Institute/Vina/vina.exe','--config',os.path.normpath('C:/ absolute/path /to/conf.txt'),'--log','log.txt'])'。这可能会尝试在工作目录中创建日志文件,这可能是错误的。在这种情况下,传递日志文件的绝对路径,通过'tempfile'模块在适当的地方创建它,例如用户的'%TEMP%'目录。 – eryksun

回答

1

正确的语法复制命令行命令将

os.system('"C:/Program Files (x86)/The Scripps Research Institute/Vina/vina.exe" --config conf.txt --log log.txt') 

如果还是不行,请尝试指定为conf.txt完整路径和log.txt的

+0

完美工作。谢谢! –

0

使用os.system(R '“C:/ Program Files(x86)/ Scripps Research Institute/Vina/vina.exe”--config conf.txt --log log.txt')