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