[英]How to run external executable using Python?
我有一个外部可执行文件,我试图从 Python 脚本运行它。 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 模块是执行您需要的pythonic 方式。
这是我几周前编写的一些代码示例,使用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")
会工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.