【发布时间】:2023-03-24 11:21:02
【问题描述】:
调用包含多个管道的命令到Popen 以便读取其输出的正确方法是什么?我试过了:
Popen(shlex.split("mycmd arg1 | mysecondcmd - | thirdcmd -", stdout=PIPE)")
但我不相信shlex.split 就在这里。正确的语法是什么?
【问题讨论】:
-
一方面,您将
stdout=PIPE作为参数传递给shlex.split,而不是Popen构造函数。另一方面,您有奇数个"字符;大概是最后一个无关紧要的。另外,如果你想使用 shell 功能,你必须通过shell=True。 (您通常不希望生成一个 shell 来将命令连接在一起,但如果您愿意,也可以。)
标签: python unix subprocess