python中复杂shell命令的捕获输出

2024-04-26 11:40:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在python脚本中嵌入一个命令并捕获输出。在这个场景中,我尝试使用"find"在不确定数量的子目录中查找不确定数量的文件,并将每个匹配的文件grep为一个字符串,类似于:

grep "rabbit" `find . -name "*.txt"`

我正在运行Python2.6.6(是的,我也很抱歉,但是现在不能让整个组织为此做出让步)。在

我尝试过使用subprocessshlex等的方法,但是我没有找到一个语法,它要么会吞下这个,要么最终吸食“find…”as the search string forgrep`,等等。建议谢谢。 肯


Tags: 文件方法字符串name命令txt脚本数量
1条回答
网友
1楼 · 发布于 2024-04-26 11:40:33
import subprocess


find_p = subprocess.Popen(["find", ".", "-name", "*.txt"], stdout=subprocess.PIPE)
grep_p = subprocess.Popen(["xargs", "grep", "rabbit"], stdin=find_p.stdout)

grep_p.wait()

相关问题 更多 >