subprocess.call - grep -c不返回正确的值

时间:2016-03-30 15:31:31

标签: python unix subprocess

我正在尝试使用python的subprocess.call来执行以下的unix函数:

grep -c 'Frame:0' file.txt

我的python代码如下所示:

frame0Count=int(unix.call("grep -c 'Frame:0' %s"% fileNameVariable,shell=True))

没有发现,屏幕输出为:

0

但是, frame0Count var的值为1,而不是0.

任何人都能解释为什么会这样吗?

由于

1 个答案:

答案 0 :(得分:1)

正如西蒙所指出的那样,我的申请是错误的。为了实现我的目标,我可以做到以下几点:

callStringframe0= unix.Popen('grep -c Frame:0 %s' % fileNameVariable , 
                              stdout=unix.PIPE,
                              stderr=unix.STDOUT, 
                              shell=True)
frame0Count=int(callStringframe0.stdout.read())

这给了我正确的答案。