【发布时间】:2023-03-17 16:31:01
【问题描述】:
我知道如何使用 cmd = subprocess.Popen 然后 subprocess.communicate 来运行命令。 大多数时候,我使用一个用 shlex.split 标记的字符串作为 Popen 的 'argv' 参数。 以“ls -l”为例:
import subprocess
import shlex
print subprocess.Popen(shlex.split(r'ls -l'), stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE).communicate()[0]
但是,管道似乎不起作用...例如,以下示例返回注意:
import subprocess
import shlex
print subprocess.Popen(shlex.split(r'ls -l | sed "s/a/b/g"'), stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE).communicate()[0]
你能告诉我我做错了什么吗?
谢谢
【问题讨论】:
标签: python command subprocess pipe popen