我试图在Python中为The Silver Searcher编写一个包装器(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()
如何捕获银色搜索者的输出?优先创建(打电话需要几秒钟)。
答案 0 :(得分:1)
以下适用于我的系统:
import subprocess
p = subprocess.Popen(["ag", "fit"], stdout=subprocess.PIPE)
print p.communicate()
答案 1 :(得分:1)
我使用了IPython并遇到了同样的问题。 版本:
已为--vimgrep
电话选项ag
解决。
In [1]: file_list = ! ag one
In [2]: file_list
Out[2]: []
In [3]: file_list = ! ag one --vimgrep
In [4]: file_list
Out[4]: ['file2:1:1:one', 'file1:1:1:one', 'file3:1:1:one']
In [5]: