在Python中运行子进程命令时如何隐藏cmd窗口

2 投票
1 回答
8082 浏览
提问于 2025-04-17 23:49

我有一些复杂的Python3图形界面代码,使用了tinker,并且用cx_Freeze进行了编译。

这个问题只在Windows上出现。

subprocess check_output(或者Popen)运行了一个类似的命令:

import subprocess
VAL = subprocess.check_output(['adb.exe', 'version'], shell=False, stdout=subprocess.PIPE).decode()

所以我需要捕获输出并把它存储为VAL。但是,当这个情况发生时,命令提示符窗口会弹出来,并在读取到值后关闭。我有一组命令做类似的事情,结果是adb.exe会在命令提示符窗口中弹出,这真的很烦人。

有没有办法让这些操作静默进行,也就是说命令提示符窗口不弹出来?

正如我提到的,这段代码是作为图形界面/tkinter运行的,使用cx_Freeze编译,并且只在微软Windows上出现(在Linux上不会发生)。

谢谢。

1 个回答

4

我的解决方案是:

import subprocess,os
startupinfo = None
if os.platform == 'win32':
    startupinfo = subprocess.STARTUPINFO()
    startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
VAL = subprocess.check_output(['adb.exe', 'version'], shell=False, startupinfo=startupinfo).decode()

撰写回答