Ответ 1
используйте subprocess.call
, подробнее здесь:
import subprocess
subprocess.call(["C:\\temp\\calc.exe"])
или
import os
os.system('"C:/Windows/System32/notepad.exe"')
Надеюсь, это поможет вам...
У меня есть внешний исполняемый файл, который я пытаюсь запустить из Python script. Выполняется CMD, но без генерации вывода. Вероятно, это выход, прежде чем может быть сгенерирован вывод. Любое предложение о том, как отложить выход до выходов?
import subprocess, sys
from subprocess import Popen, PIPE
exe_str = r"C:/Windows/System32/cmd C:/temp/calc.exe"
parent = subprocess.Popen(exe_str, stderr=subprocess.PIPE)
используйте subprocess.call
, подробнее здесь:
import subprocess
subprocess.call(["C:\\temp\\calc.exe"])
или
import os
os.system('"C:/Windows/System32/notepad.exe"')
Надеюсь, это поможет вам...
Метод os.system
обесценивается и не должен использоваться в новых приложениях. Модуль подпроцесса - это питонический способ сделать то, что вам нужно.
Вот пример некоторого кода, который я написал несколько недель назад, используя subprocess
для загрузки файлов, команду, которую вы должны использовать для задержки выхода, пока данные не будут получены, а запущенная программа не будет wait()
:
import subprocess
cmd = "c:\\file.exe"
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, creationflags=0x08000000)
process.wait()
creationflags=0x08000000
- необязательный параметр, который подавляет запуск окна, что может быть полезно, если программа, которую вы вызываете, не должна отображаться непосредственно.
Опция 1
import subprocess
subprocess.call('C:\Windows\System32\calc.exe')
Вариант 2
subprocess.Popen(['C:\Windows\System32\calc.exe'],stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True).communicate()
Вариант 3
import os
os.system('C:\Windows\System32\calc.exe')
Это сработало для меня после того, как я попробовал все остальное: измените местоположение вашей программы на Python таким же, как и расположение .exe. И тогда все просто:
subprocess.call("calc.exe") будет работать.