Python 如何将cmd行转换为os.system行?

Python 如何将cmd行转换为os.system行?,python,windows,cmd,os.system,config-files,Python,Windows,Cmd,Os.system,Config Files,我曾经使用以下命令通过cmd行运行一个名为vina的程序: "\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

我曾经使用以下命令通过cmd行运行一个名为vina的程序:

"\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)
程序快速打开然后关闭,可能是因为它没有运行配置文件。我还尝试将配置放入字符串中,如下所示(在使配置正常工作之前,我将忽略日志内容):

系统('C:/ProgramFiles(x86)/Scripps研究所/Vina/Vina.exe','-config conf.txt'))

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

TypeError:system()最多接受1个参数(给定2个)


关于如何像我在cmd中那样在python行中指定配置文件和日志文件输出,有什么想法吗?

复制命令行命令的正确语法如下

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

如果不起作用,请尝试为conf.txt和log.txt指定完整路径

os.system(r''C:/ProgramFiles(x86)/Scripps Research Institute/Vina/Vina.exe--config conf.txt--log log.txt')

如何使用os.path并提取路径,然后将其转换为字符串以用于os。SystemTry
subprocess.call(['C:/ProgramFiles(x86)/Scripps研究所/Vina/Vina.exe','-config',os.path.normpath('C:/absolute/path/to/conf.txt'),'-log',log.txt'))
。这可能会尝试在工作目录中创建日志文件,这可能是错误的。在这种情况下,传递日志文件的绝对路径,通过
tempfile
模块在适当的位置创建日志文件,例如用户的
%TEMP%
目录。效果很好。非常感谢。