gpt4 book ai didi

python - Python 中带有子进程的 Shell 管道

转载 作者:太空狗 更新时间:2023-10-29 20:23:14 31 4
gpt4 key购买 nike

我阅读了我在 StackOverflow 上找到的关于使用 subprocess 从 Python 调用 shell 命令的每个线程,但我找不到适用于我的以下情况的答案:

我想通过 Python 执行以下操作:

  1. 运行 shell 命令 command_1。收集变量 result_1

  2. 中的输出
  3. Shell pipe result_1command_2 并收集 result_2 上的输出。换句话说,运行 command_1 | command_2 使用我在运行 command_1 之前的步骤中获得的结果

  4. 将相同的管道 result_1 执行到第三个命令 command_3 中,并将结果收集到 result_3 中。

    <

到目前为止我已经尝试过:

p = subprocess.Popen(command_1, stdout=subprocess.PIPE, shell=True)

result_1 = p.stdout.read();

p = subprocess.Popen("echo " + result_1 + ' | ' +
command_2, stdout=subprocess.PIPE, shell=True)

result_2 = p.stdout.read();

原因似乎是 "echo "+ result_1 没有模拟获取命令输出的过程用于管道

这完全有可能使用子流程吗?如果是,怎么办?

最佳答案

你可以这样做:

pipe = Popen(command_2, shell=True, stdin=PIPE, stdout=PIPE)
pipe.stdin.write(result_1)
pipe.communicate()

而不是管线。

关于python - Python 中带有子进程的 Shell 管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9542389/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com