python - 为什么 log.plaintext 在 Python 中响应较晚?
问题描述
我想在pyqt上执行exe后看到stdout的立即执行结果。我在 Python 代码中实现了我想要的所有操作,其余的都链接到 pyqt 的小部件。我想从pyqt打印出exe的立即执行结果。虽然在 cmd 窗口中一切正常输出,而在所有 cmd 执行结束后的最后一次只显示 log.insertPlainText 部分输出。
我确信这不是一个重复的问题。我想要的不是 pyqt 的解决方案,而是我想完全用 Python 代码解决它。我尝试了很多不同的方法,但是在 cmd 执行结束时仍然会同时打印日志。我使用 log.insertPlainText 而不是 print 的原因是,因为我想在 pyqt 中显示输出结果。
我已经尝试过的:
cmd = [cmd command]
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, universal_newlines=True, bufsize=1)
for line in iter(p.stdout):
log.insertPlainText(line)
p.stdout.close()
p.wait()
和
with Popen([cmd command], stdout=PIPE, bufsize=1,
universal_newlines=True) as p:
for line in p.stdout:
log.insertPlainText(line)
解决方案
推荐阅读
- c++ - 指针意外传递给函数更改
- huggingface-transformers - Huggingface 转换器模型返回字符串而不是 logits
- angular - 如何在不使用ngrx/entity将id从角度应用程序传递到firestore的情况下创建项目?
- firebase - 如何检查 Google Firestore 规则中的数组内容?
- c++ - 使用 clang 获取源代码和调试符号(使用 cli)
- java - 缩放图像会在 java.awt.image.ReplicateScaleFilter 处产生错误。
(来源不明)) - django - 如何使用从 NPM 导入的 javascript 库
- javascript - 如何制作静音脚本而不会出错?
- android - 尝试将图像从相机 2 API 传递到检测器时,人脸检测在华硕设备上不起作用
- vue.js - (在 nuxt js 中进行 vuetify)自动完成不是相对于 items 属性的更新