停止调用新的Shell/cmd提示符,Python

2 投票
2 回答
515 浏览
提问于 2025-04-16 01:16

我有一个Python脚本,它需要调用一个.exe文件来获取一些结果。这个.exe文件会打开一个新的命令提示符窗口。我并不需要从这个.exe文件中获取任何输出。

在我的脚本中,我使用了 os.system('segwin.exe args'),其中segwin是一个可执行文件。

现在我的问题是:我想停止打开命令提示符窗口。

感谢大家的帮助!

sag

2 个回答

0

这其实是和Windows有关的。Windows系统认为 segwin.exe 是一个基于控制台的应用程序(它使用了Windows C接口中的控制台子系统)。

我知道怎么让一些不需要提示框的应用程序弹出提示框,但反过来就不太清楚了。你可以试试这个,或者这个

1

试试这个(未经测试):

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() 每次都会启动一个新的命令行,这在大多数情况下是不必要的,而且不太方便。

撰写回答