Прекратите вызывать новое приглашение Shell / cmd, python - PullRequest
2 голосов
/ 14 июля 2010

У меня есть сценарий Python, который должен вызвать файл .exe, чтобы получить некоторый результат. Этот файл .exe вызывает новую командную строку Windows (оболочку). мне не нужен вывод из .exe файла.

я использую os.system ('segwin.exe args') в моем скрипте, где segwin является исполняемым файлом.

Теперь мой вопрос: мне нужно прекратить вызывать команду cmd

слава всем

провисание

Ответы [ 2 ]

1 голос
/ 14 июля 2010

Попробуйте это (не проверено):

import subprocess
CREATE_NO_WINDOW = 0x08000000
args = [...]
subprocess.check_call(["segwin.exe"] + args, creationflags=CREATE_NO_WINDOW)

Обратите внимание, что check_call проверяет код возврата запущенного подпроцесса и вызывает исключение, если оно ненулевое. Если вы не хотите этого, используйте call.

В общем, избегайте os.system() и используйте модуль subprocess, когда это возможно. os.system() всегда запускает оболочку, которая в большинстве случаев является непереносимой.

0 голосов
/ 14 июля 2010

Это на самом деле характерно для Windows.Windows решила, что segwin.exe является консольным приложением (использует подсистему Console из интерфейса Windows C.)наоборот, вы можете попробовать использовать this или this .

...