2017-01-06 9 views
0

Я использовал для запуска программы под названием в`ина через CMD строки, используя следующую команду:Как перевести cmd-строку в строку os.system?

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

Таким образом, программа принимает конфигурационный файл для запуска и выводит лог-файл с результатами. Я запускаю программу на python, используя модуль os.system. Тем не менее, я не могу назначить файл конфигурации или файл журнала, как это было в 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)/Научно-исследовательский институт Скриппса /Vina/vina.exe»,„--config conf.txt“)

в этом случае я получаю ошибку:

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

Любые идеи о том, как указать конфигурационный файл и вывод файла журнала в строках python, как в CMD?

+0

Как насчет использования os.path и извлечения пути и затем преобразование его в строку для использования с ОС. System – dhishan

+0

Попробуйте 'subprocess.call (['C:/Program Files (x86)/Исследовательский институт Scripps/Vina/vina.exe', '--config', os.path.normpath ('C:/absolute/path /to/conf.txt '),' --log ',' log.txt ']) '. Вероятно, это попытается создать файл журнала в рабочем каталоге, что может быть неправильным. В этом случае пройдите абсолютный путь к файлу журнала, создав его где-то подходящим, например, пользовательский '% TEMP%' каталог через модуль tempfile. – 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 (г '' C:/Program Files (x86)/Исследовательский институт Scripps/Vina/vina.exe "--config conf.txt --log log.txt ')