【发布时间】:2010-10-17 10:11:31
【问题描述】:
我编写了一个脚本来运行具有不同输入参数的命令行程序并从输出中获取特定的行。我有以下循环运行:
p1 = subprocess.Popen(["program", args], stderr=subprocess.STDOUT, stdout=subprocess.PIPE, shell=False)
p2 = subprocess.Popen(["grep", phrase], stdin=p1.stdout, stdout=subprocess.PIPE, shell=False)
p1.wait()
p2.wait()
p = str(p2.stdout.readlines())
print 'p is ', p
一个问题是循环运行完成后只有输出。我想在每次进程完成时打印一些东西。我该怎么做?
另外,我想选择显示 p1 的输出。但是我不能在不破坏 p2 的情况下用 p1.stdout.readlines() 抓住它。我该怎么做?
我在想我不能调用 grep,存储 p1 的输出并搜索短语,但是输出很多,所以这种方式似乎效率很低。
任何建议将不胜感激。谢谢!
【问题讨论】:
标签: python subprocess