1

この単純なコードを参照してください。

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

私の問題は単純に見えます。通話の最後にこの0は必要ありません。呼び出しによって呼び出されるすべての関数はこれとともに表示され、これは条件付きテストのために物事を台無しにします。

何かのようなもの:

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

では、どうすれば受け取ることができますか

Hi

この例では?

4

2 に答える 2

2

communicateドキュメントで説明されているように、Popenをで使用したい:

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

表示されている値は、echoプロセスの戻り値です。アクティブなインタープリターを使用しているため、この戻り値は端末に出力されます。ダミー変数に割り当てることで無視できます。

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

念のために言っておきますが、あなたはただ書くことができることを知っていますよprint("Hi")ね?

于 2012-04-24T00:27:25.163 に答える