2014-10-31 4 views
-2

Я использую os.startfile('C:\\test\\sample.exe') для запуска приложения. Я не хочу знать статус выхода приложения, и я просто хочу запустить exe.Передача аргументов исполняемому в Python

мне нужно передать аргумент, что ех как 'C:\\test\\sample.exe' -color

Просьбе предложить метод, чтобы запустить это в Python.

+0

use 'os.system (" command ")' – Hackaholic

ответ

3

Вы должны использовать модуль subprocess вместо os.startfile или os.system в каждом случае, о котором я знаю.

import subprocess 
subprocess.Popen([r'C:\test\sample.exe', '-color']) 

Вы могли как @Hackaholic предполагает в комментариях, сделать

import os 
os.system(r'C:\test\sample.exe -color') 

Но это не проще, и the docs for os рекомендуют использовать subprocess вместо.

+0

Подпроцесс ждет завершения нового exe, но моя цель - просто запустить новый exe. ниже код не работает. os.system (r'c: \\ Program Files \\ bin \\ winx64 \\ sample.exe -b -color ') – Bala

+0

@Bala Ах, верно, забыл, что 'os.startfile' открывается в новом процессе. Я отредактировал свой ответ; вы должны использовать 'subprocess.Popen', если вы не хотите, чтобы вызов блокировался. – senshin

+0

@Bala Обратите внимание: вы должны использовать двойные слэши '' C: \\ foo'' _OR_ raw строки 'r'C: \ foo''. Не оба. Если вы используете оба варианта, у вас будет слишком много обратных косых черт в ваших файлах. Вероятно, поэтому вызов 'os.system' в вашем комментарии терпит неудачу. – senshin

Смежные вопросы