来自 Python 子进程的实时输出/流

2024-01-04

我正在使用 Python 及其子进程库来使用 strace 检查调用的输出,具体如下:

subprocess.check_output(["strace", str(processname)]) 

但是,这只能给我输出after被调用的子进程已经完成,这对我的用例来说非常有限。

我需要过程中的一种“流”或实时输出,所以我需要读取输出while该进程仍在运行,而不是仅在完成后才运行。

有没有一种使用子流程库来实现此目的的便捷方法? 我正在考虑每 x 秒进行一次轮询,但没有找到有关如何在文档中实现此功能的任何提示。

提前谢谢了。


从 Python 3.2 开始(当上下文管理器支持添加到Popen),我发现这是从子进程连续流输出的最直接的方法:

import subprocess


def run(args):
  with subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) as process:
    for line in process.stdout:
      print(line.decode('utf8'))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

来自 Python 子进程的实时输出/流 的相关文章

随机推荐

  • Winforms ListView MouseUp 事件多次触发

    在我的 NET 4 5 Winforms 应用程序中 当我从该事件打开文件时 ListView 控件的 MouseUp 事件会触发多次 如下所示 private void ListView1 MouseUp object sender Mo
  • 隐藏的可见性会删除表格中的背景颜色[重复]

    这个问题在这里已经有答案了 我正在构建一个应用程序 并且我有一个动态创建的表 表行创建如下 tr style background color 71aa9a td td td td tr tr 还有一些td s在创建过程中被隐藏 出现的问题
  • 如何让机器人在discord.py 中编辑自己的消息

    有没有办法让机器人编辑自己的消息 我试图寻找答案 但找不到答案 这将通过代码完成 您需要以某种方式在您的机器人程序中执行它 例如 为其创建一个执行它的命令 然后您可以删除它 获取消息对象 这可以通过首先获取通道对象然后从中获取消息来完成 基
  • ComboBox 未更新所选项目上的数据绑定已更改(WinForms)

    我有一个绑定到数据源的组合框 但在控件失去焦点之前它不会更新绑定 当所选项目发生更改时 如何更新绑定 在下面的屏幕截图中 我希望标签立即更新以反映新的选择 一些代码 public enum MyEnum First Second publi
  • 字符串“sizeof”的意外结果

    为什么 sizeof 在以下情况下会打印不同的值 printf d sizeof ab print 3 char t ab printf d sizeof t print 4 在第一种情况下 我有 2 个角色 不应该sizeof打印2 因为
  • Yii2 GridView 有条件隐藏列

    我在 Yii2 GridView 小部件中显示一些列 执行人员名称 是其中之一 但它应该仅在主管登录时显示 而不是在执行人员登录时显示 当我将可见值硬编码为零时 它不会显示如下 label gt Executive Name attribu
  • 加载React组件时未定义gapi

    我正在尝试集成 Google 登录 link https developers google com identity sign in web sign in 使用反应 我发现一个问题过去已经解决了这个问题使用带有 React 2 的 go
  • 如何在提取元素时跳过“#”号而不循环?

    我想从这个数据集中获取一个新的data frame 但是有些行之间有一些带有 的描述 有些行包含 符号 我可以在条件 substr x 1 下使用 for 循环 1 和 gsub 使用正则表达式来获得我需要的结果 我的问题是我是否可以在没有
  • 如何在 python 中使用 kNN 动态时间扭曲

    我有一个带有两个标签的时间序列数据集 0 and 1 我在用动态时间扭曲 DTW 作为使用 k 最近邻 kNN 进行分类的相似性度量 如这两篇精彩的博客文章中所述 https nbviewer jupyter org github mark
  • LaTeX:美元符号与 \( \)

    有什么理由更喜欢语法 myformula 到平常的 myformula 在乳胶中 Edit 同样的问题被问到并得到了回答tex stackexchange https tex stackexchange com questions 510
  • 使用 Javascript 更新 JSON 对象

    如何使用 javascript 或 Jquery 动态更新以下 JSON 对象 var jsonObj Id 1 Username Ray FatherName Thompson Id 2 Username Steve FatherName
  • 当进程内存不足时删除大型 Javascript 对象

    我是这种javascript的新手 所以我会给出一个简短的解释 我内置了一个网络抓取工具Nodejs收集 相当多的 数据 并用Cheerio 基本上jQuery for Node 创建一个对象然后将其上传到 mongoDB 它工作得很好 除
  • React:向现有组件添加道具

    我正在尝试找出如何使用附加道具克隆现有元素 以供参考 this mainContent
  • rtmp和rtsp协议有什么区别?

    我只是想知道 rtsp 和 rtmp 协议之间有什么区别 如果我的服务器上有 mp3 并且我正在我的 Android 中使用 http 播放它 那么它们在工作中有何不同 在android中如果我想实现rtmp或rtsp 哪个是最好的 and
  • SQL Server R2 SSRS 上的 Reporting Services 权限

    当我尝试访问 SQL Server 2008 R2 上的 SSRS 时 出现以下错误 我不确定有多少其他人已经开始使用 SQL 2008 R2 SSRS 但当我尝试访问报告服务器 url 时遇到以下错误 用户没有所需的权限 验证是否已授予足
  • Java 服务器 -- 使用 POST 发送 Push 到 google Firebase Cloud

    在我测试了推送通知与 Postman 的配合后 我想在我的应用程序中发送消息时向 FCM 发送推送请求 调用的函数将访问我的 Java 服务器并调用如下函数 POST Consumes MediaType APPLICATION JSON
  • 如何将 2 路数据绑定与模型驱动表单结合起来?

    在角度 2 中 构建形式的一种可能性是模型驱动方式 据我了解 控件失去了 2 路数据绑定 这与 ngModel 的模板驱动方式相反 将 2 路数据绑定与模型驱动表单相结合的最佳方式是什么 我尝试将模型绑定与 value 一起使用
  • 服务器重启后 Liferay 调度程序不工作

    我正在使用下面的代码安排工作 Controller RequestMapping VIEW public class MyController RenderMapping public String defaultView try Stri
  • 在 Javascript 中使用 Ruby 变量(在应用程序视图中)

    目前 我有一个可以通过名为的视图访问的 ruby 变量 json 其中包含我需要的 JSON 格式的信息 但是 我想将其传递到脚本区域 例如 有什么办法可以做到这一点吗 假设您提到的脚本标签位于 html erb 视图中 您可以使用以下命令
  • 来自 Python 子进程的实时输出/流

    我正在使用 Python 及其子进程库来使用 strace 检查调用的输出 具体如下 subprocess check output strace str processname 但是 这只能给我输出after被调用的子进程已经完成 这对我