欢迎各位兄弟 发布技术文章
这里的技术是共享的
python 执行 上面的代码会出现黑窗口,,如何使黑窗口隐藏 或者直接关闭
result = subprocess.run(
["netsh", "advfirewall", "show", "allprofiles", "state"],
capture_output=True, text=True, encoding="cp936" # <<< 修改此处
# encoding="cp936" # 如果 utf-8 乱码,可以尝试这个
)
我自己亲自做的 creationflags=subprocess.CREATE_NO_WINDOW # 关键参数 # OK 有大用
在 Python 中使用 subprocess.run() 执行命令时出现黑色控制台窗口(特别是在 Windows 上),可以通过以下方法隐藏:
对于 Windows 系统:使用 CREATE_NO_WINDOW 标志
pythonimport subprocess result = subprocess.run( ["netsh", "advfirewall", "show", "allprofiles", "state"], capture_output=True, text=True, encoding="cp936", creationflags=subprocess.CREATE_NO_WINDOW # 关键参数 )
跨平台解决方案(但 Windows 效果更好的是上述方法):
pythonresult = subprocess.run( ["netsh", "advfirewall", "show", "allprofiles", "state"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, encoding="cp936", startupinfo=subprocess.STARTUPINFO( dwFlags=subprocess.STARTF_USESHOWWINDOW, wShowWindow=subprocess.SW_HIDE ) if hasattr(subprocess, 'STARTUPINFO') else None )
第一种方法 (CREATE_NO_WINDOW) 是 Windows 专有但最可靠的方法
如果用 PyInstaller 打包成 exe 后仍有窗口出现,需要在 spec 文件中设置 console=False
这些方法同样适用于其他命令行工具的调用场景
选择第一种方法即可完美解决你的需求。