繁体   English   中英

如何使用 Python 运行外部可执行文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM