看这个简单的代码:
$ python
>>> from subprocess import *
>>> call(['echo','Hi'])
Hi
0
我的问题看起来很简单。我不希望在通话结束时出现这个0 。call 调用的每个函数都会出现 this ,这会弄乱条件测试的内容。
就像是:
if int(call(['function', 'parameter']))>10:
print 'yes'
那么我怎样才能收到只有
Hi
在这个例子中?
您看到的值是echo
进程的返回值。因为你在一个活跃的解释器中,所以这个返回值被打印到终端。您可以通过将其分配给虚拟变量来忽略它:
_ = call(['echo','Hi'])
只要确保,你知道你可以写print("Hi")
,对吧?
您想将 Popen 与 一起使用communicate
,如文档中所述:
>>> from subprocess import *
>>> Popen(['echo', 'Hi'], stdout=PIPE).communicate()[0]
'Hi\n'