python - 无法通过子进程调用从 The Silver Searcher 获取输出

标签 python subprocess

我正在尝试为 The Silver Searcher 编写一个包装器在 Python 中(Silver Searcher 就像 ack 和 grep)。

但是,我无法使用子进程库成功调用该程序。我可以获得帮助文本或版本等信息,但无法启动搜索(当我尝试时,它会失败并打印帮助文本)。

我尝试了以下方法,但没有成功:

import subprocess

p = subprocess.Popen(['ag', 'fit'], shell=True)
p.communicate()

p = subprocess.Popen(['ag', 'fit'])
p.communicate()

p = subprocess.Popen(['ag', 'fit'], shell=True)
p.wait()
p.communicate()

p = subprocess.Popen(['ag', 'fit'])
p.wait()
p.communicate()

如何捕获 The Silver Searcher 的输出?最好是在创建时(调用我需要几秒钟)。

最佳答案

以下内容适用于我的系统:

import subprocess

p = subprocess.Popen(["ag", "fit"], stdout=subprocess.PIPE)
print p.communicate()

关于python - 无法通过子进程调用从 The Silver Searcher 获取输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27178762/

相关文章:

python - 创建使用 .isdigit 的代码

python - 一次返回一个单词

python - 在Linux服务器上运行子进程不起作用,但在Windows上本地运行

python - 在 Windows 中终止子进程,访问被拒绝

Python 子进程 Popen.communicate() 等价于 Popen.stdout.read()?

python - 如何在Python中通过两个链式管道传输变量的内容?

python - 将 Xvfb 和 CutyCapt 作为 Python 子进程运行

python - 读取文本文件中行的进度条

python - 在python中随机选择特定范围内具有特定倍数的数字

java - 在 Java 中集成 Python 脚本