python - 在窗口化应用程序上获取命令执行的输出
问题描述
我创建了一个 Python 脚本并使用 PyInstaller 将其编译成一个 exe 文件。在此过程中,我指定了 -w 选项来获取没有任何控制台的应用程序。
除了使用 popen 执行命令外,一切正常:
mout = subprocess.Popen(['ls','C:\'])
此行生成异常[Error 6] The handle is invalid
。
我已经尝试添加参数
stdout=subprocess.PIPE, stderr=subprocess.PIPE
,但它仍然无法正常工作。我认为这是因为主进程没有分配任何控制台。我想执行命令但不打开任何外壳,它必须对用户透明。
有什么选择吗?
解决方案
这应该可以解决您的问题。
proc = subprocess.Popen(['ls','C:\\'], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, creationflags=CREATE_NO_WINDOW)
推荐阅读
- javascript - 如何在使用插件时将域添加到 next.config.js 以获取“next/image”
- node.js - 如果客户端不尝试创建开放的 websocket 连接,我可以在 http.createServer 函数中放置一个请求侦听器吗?
- vuetify.js - Vuetify:关闭对话框时如何执行方法?
- python - 如何在 R 中找到 K 折验证的平均训练和交叉验证误差?
- php - PHPMailer 发送电子邮件到接收者电子邮件
- selenium - 如何在 selenium 驱动程序中禁用 chrome 权限弹出窗口
- angular - 在 Nestjs 测试中在导入的模块中注入依赖项
- java - java - 如何使用 compareTo 方法将值插入到 java 中的队列中?
- java - 即使代码格式正确并且明确调用了方法,也缺少返回语句
- automata - 具有 4 或 5 个状态的 DFA