Раньше я запускал программу под названием vina через строку cmd, используя следующую команду:
"\Program Files (x86)\The Scripps Research Institute\Vina\vina.exe" --config conf.txt --log log.txt
Итак, программа берет файл конфигурации для запуска и выводит файл журнала с результатами. Я запускаю программу на python, используя модуль os.system. Однако я не могу назначить файл конфигурации или файл журнала, как в cmd. Я пробовал что-то подобное в питоне:
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)
Любые идеи о том, как указать файл конфигурации и вывод файла журнала в строках python, как я делаю в cmd?
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'])
. Это, вероятно, попытается создать файл журнала в рабочем каталоге, что может быть неправильным. В этом случае передайте абсолютный путь к файлу журнала, создав его где-нибудь подходящим, например, в каталоге пользователя%TEMP%
через модульtempfile
. - person Eryk Sun   schedule 07.01.2017