【发布时间】:2013-01-14 18:57:36
【问题描述】:
我正在尝试做一些非常简单的事情来学习如何在 python 中使用subprocess
我正在尝试的是:
ll | egrep "*gz"
所以在阅读了python的手册(我不是很了解)之后,我尝试了这个:
lista = subprocess.Popen(['ls', '-alF'], stdout=subprocess.PIPE)
filtro = subprocess.Popen(['egrep', '"*gz"'], stdin=lista.stdout, stdout=subprocess.PIPE)
filtro.communicate()[0]
但我得到的只是'',我真的不知道该怎么做,我读过this,但似乎我根本不明白......有人可以向我解释一下如何这可以在与其他命令一起使用之后使用它吗??
提前致谢!!
【问题讨论】:
-
这里的星号是否应该被扩展以匹配 glob 表达式?
-
您输入了
lista而不是list。使用列表作为名称也不是一个好主意。 -
@fp 哦,对不起,但这不是错误,我只是试着把它写成英文!!
-
放
print filter.communicate()看看执行的时候有没有报错。list是python中使用的名称,所以如果将其用作变量名会很混乱。 -
您能否准确发布您得到错误结果的代码,而不是翻译版本? IE。作为一个独立的脚本我们可以测试吗?您似乎已经了解 subprocess 的工作原理,因此错误可能只是某处的一个小错误。
标签: python subprocess