python子进程模块:循环子进程的标准输出

2023-11-24

我有一些使用子进程模块运行的命令。然后我想循环输出的行。文档说不要做 data_stream.stdout.read 我不是,但我可能正在做一些调用它的事情。我像这样循环输出:

for line in data_stream.stdout:
   #do stuff here
   .
   .
   .

这是否会导致死锁,例如从 data_stream.stdout 读取数据,或者是否为这种循环设置了 Popen 模块,以便它使用通信代码,但为您处理它的所有调用?


如果你是这样,你就必须担心死锁沟通与您的子进程一起,即如果您正在写入标准输入并从标准输出读取。因为这些管道可能会被缓存,所以进行这种双向通信是非常禁忌的:

data_stream = Popen(mycmd, stdin=PIPE, stdout=PIPE)
data_stream.stdin.write("do something\n")
for line in data_stream:
  ...  # BAD!

但是,如果您在构建 data_stream 时没有设置 stdin (或 stderr),那么应该没问题。

data_stream = Popen(mycmd, stdout=PIPE)
for line in data_stream.stdout:
   ...  # Fine

如果您需要双向通信,请使用交流.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python子进程模块:循环子进程的标准输出 的相关文章

随机推荐

  • MongoDB:具有稀疏值的唯一稀疏复合索引

    我正在尝试存储以下链接 URL hostname i imgur com webid qkELz jpg 我想要在这两个字段上有一个唯一且稀疏的复合索引 因为 的组合hostname and webid应该是独一无二的 webid总是会被查
  • ggplot2:geom_ribbon,alpha 取决于每个 x 沿 y 轴的数据密度

    ggplot2 中有没有一种方法可以根据点的密度生成具有不同 alpha 的 geom ribbon 或其他基于区域的 geom 以下代码生成 50 个有噪声的正弦波 每个样本具有随机 x 值 我不想绘制每一个点 因为我可能需要一千次或更多
  • 获取单个 Windows 应用程序当前音量输出级别,如音频混合器中所示

    我正在尝试编写一个 C 代码 该代码从每个访问声音输出的 Windows 应用程序输出当前的音频输出级别 如音量混合器不断变化的绿色条所示 该程序将每 10 毫秒检查一次 并输出如下内容 Windows Media Player 30 Mo
  • 比较 PHP 中的多维数组

    如何在 php 中比较多维数组 有简单的方法吗 我知道的最简单的方法 a b 请注意 您还可以使用 它们之间的区别是 With 双等于 顺序很重要 a array 0 gt a 1 gt b b array 1 gt b 0 gt a va
  • c recv() 读取直到出现换行符

    我正在用 C 语言编写 IRC 机器人 但遇到了障碍 在我的主函数中 我创建了套接字并连接 所有这些快乐的事情 然后我有一个 几乎 无限循环来读取从服务器发回的内容 然后我将读取的内容传递给辅助函数 processLine char lin
  • 在 jekyll 博客中支持标签的简单方法

    我正在使用标准 jekyll 安装来维护博客 一切都很顺利 但我真的很想标记我的帖子 I can使用 YAML Front Matter 标记帖子 但如何为每个标签生成可以列出该标签的所有帖子的页面 这是一个解决方案在单个页面上按字母顺序排
  • TableLayoutPanel 的行/列着色(vs2008、winform)

    我可以为 TableLayoutPanel 中的整个行或列添加特定颜色吗 如何 请提供示例代码 如果有 提前致谢 是的你可以 使用 TableLayoutPanel 的 CellPaint 事件来测试哪一行 列调用了该事件 然后使用矩形的
  • 使用 tf.trainable_variables() 显示可训练变量的名称

    我正在处理weights in a RNNCell 我有以下代码 var names for var in tf trainable variables var names append var name 在另一个名为model py 我正
  • 正则表达式验证密码强度

    我的密码强度标准如下 8个字符长度 2 个大写字母 1 个特殊字符 2 个数字 0 9 3 个小写字母 有人可以给我同样的正则表达式吗 密码必须满足所有条件 您可以使用积极的前瞻断言来执行这些检查 A Z A Z 0 9 0 9 a z a
  • 我如何在discord.py中创建一个有效的斜杠命令

    我正在尝试使用 discord py 创建斜杠命令 我已经尝试了很多东西 但它似乎不起作用 如有帮助 将不胜感激 注意 我将在最后包含 pycord 的版本 因为我认为它更简单 也是最初的答案 不和谐 py版本 首先确保您安装了最新版本的d
  • Algolia 搜索网络错误

    我正在将 Algolia 与我拥有的 Firebase 项目连接起来 我使用 Firebase Cloud Functions 来使 Algolia 索引与 Firebase 数据库中发生的所有更改保持同步 但每当我打电话 索引 saveO
  • 为什么 CMP(比较)有时会在 8086 汇编中设置进位标志?

    我一直在阅读 8086 指令集 它说 CMP 比较 可以设置进位标志 我知道比较会减去两个操作数 但我想知道在这种情况下是否有人可以提供一个示例 我只是无法理解添加数字和负数将设置进位标志的想法 我已经阅读了借用标志 但我只需要一个示例来阐
  • Bootstrap:移动显示上的列之间的间隙

    我正在使用 bootstrap 3 0 制作一个网站 我希望 HTML 和 CSS 能够在桌面 平板电脑和移动设备上清晰地看到 我遇到的一个问题是 当您在移动显示器上查看该网站时 该列会堆叠在一起 我并不是在批评它 因为它会尽可能地停止滚动
  • 白名单不适用于人行横道离子

    我使用 ionic 创建了一个工作应用程序 从我的网站获取数据没有问题 一切都很好 然后我去添加人行横道 现在当我在 Android 手机上运行它时出现错误 W XWalkCordovaResourceClient URL blocked
  • 无法从传输连接读取数据:控制台应用程序中的连接已关闭错误

    我在控制台应用程序中有这段代码 它在循环中运行 try HttpWebRequest request HttpWebRequest WebRequest Create search request Headers Add Accept La
  • 使用 TextFieldParser 处理包含未转义双引号的字段

    我正在尝试使用导入 CSV 文件文本字段解析器 一个特定的 CSV 文件由于其非标准格式而给我带来了问题 相关 CSV 的字段用双引号括起来 当特定字段中有一组附加的未转义双引号时 就会出现此问题 这是一个过于简单的测试用例 突出了这个问题
  • 谷歌地图 api v3 - 从外部点击打开信息窗口

    所以我有一个 V3 地图 其初始化如下 function init var mapCenter new google maps LatLng 51 5081289 0 128005 var map new google maps Map d
  • React 导航抽屉的状态? (打开或关闭)

    我正在使用 React Navigation 构建一个抽屉 并且希望在用户关闭抽屉时执行一些逻辑 我在文档中没有看到任何明显的内容可以让我做到这一点 有人知道有办法做到这一点吗 您需要自定义导航操作来捕获DrawerClose event
  • Java 将 GMT/UTC 转换为本地时间无法按预期工作

    为了展示可重现的场景 我正在执行以下操作 获取当前系统时间 当地时间 将当地时间转换为 UTC 在此之前工作正常 反转 UTC 时间 回到当地时间 遵循 3 种不同的方法 如下所列 但所有 3 种方法均仅保留 UTC 时间 long ts
  • python子进程模块:循环子进程的标准输出

    我有一些使用子进程模块运行的命令 然后我想循环输出的行 文档说不要做 data stream stdout read 我不是 但我可能正在做一些调用它的事情 我像这样循环输出 for line in data stream stdout d