python子进程grep返回零

时间:2014-10-11 19:34:58

标签: python grep subprocess python-2.6

我正在尝试使用以下脚本计算字符串OW出现在文件中的次数,

import subprocess
subprocess.call("grewp Ow file.txt | wc -l", shell=True)

但它总是返回正确的答案后跟零

>>> subprocess.call("grep OW production_run.gro | wc -l", shell=True)
2638
0
>>> 

当我尝试用它声明变量时,它存储0。 这里有没有人知道为什么会发生这种情况以及如何解决它?

2 个答案:

答案 0 :(得分:0)

Python关于subprocess.call的文档

  

运行args描述的命令。等待命令完成,然后   返回returncode属性。

尝试使用check_output

答案 1 :(得分:0)

基于document subprocess.check_output

  

使用参数运行命令并将其输出作为字节字符串返回。

因此你可以使用它:

count = int(subprocess.check_output("grewp Ow file.txt | wc -l", shell=True))