【发布时间】:2017-01-06 23:09:36
【问题描述】:
我曾经使用以下命令通过 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)
程序打开很快然后关闭,可能是因为它没有运行配置文件。我还尝试将配置放入一个字符串,如下所示(我省略了日志内容,直到我让配置工作):
os.system('C:/Program Files (x86)/The Scripps Research Institute/Vina/vina.exe', '--config conf.txt')
在这种情况下,我得到了错误:
TypeError: system() 最多接受 1 个参数(给定 2 个)
关于如何像我在 cmd 中那样在 python 行中指定配置文件和日志文件输出有什么想法吗?
【问题讨论】:
-
如何使用 os.path 并提取路径,然后将其转换为字符串以与操作系统一起使用。系统
-
试试
subprocess.call(['C:/Program Files (x86)/The Scripps Research Institute/Vina/vina.exe', '--config', os.path.normpath('C:/absolute/path/to/conf.txt'), '--log', 'log.txt'])。这可能会尝试在工作目录中创建日志文件,这可能是错误的。在这种情况下,传递日志文件的绝对路径,通过tempfile模块在适当的地方创建它,例如用户的%TEMP%目录。
标签: python windows cmd os.system configuration-files