1

看这个简单的代码:

$ python
>>> from subprocess import *  
>>> call(['echo','Hi'])
Hi
0

我的问题看起来很简单。我不希望在通话结束时出现这个0 。call 调用的每个函数都会出现 this ,这会弄乱条件测试的内容。

就像是:

if int(call(['function', 'parameter']))>10:
    print 'yes'

那么我怎样才能收到只有

Hi

在这个例子中?

4

2 回答 2

2

您看到的值是echo进程的返回值。因为你在一个活跃的解释器中,所以这个返回值被打印到终端。您可以通过将其分配给虚拟变量来忽略它:

_ = call(['echo','Hi'])

只要确保,你知道你可以写print("Hi"),对吧?

于 2012-04-24T00:27:25.163 回答
2

您想将 Popen 与 一起使用communicate,如文档中所述:

>>> from subprocess import *
>>> Popen(['echo', 'Hi'], stdout=PIPE).communicate()[0]
'Hi\n'
于 2012-04-24T00:35:58.553 回答