0

私は通常、次のように端末から実行するコマンド(Say foo)を持っています:

    user@computer$ foo
    enter the string: *(here I enter some string)*
    RESULT OF THE COMMAND WITH THE GIVEN INPUT

どのような情報を入力する必要があるかを事前に知っています。では、この python コードを使用して呼び出しを自動化するにはどうすればよいですか。

   from subprocess import call
   call(['foo'])

foo への入力を自動化するにはどうすればよいですか?

4

2 に答える 2

1

サードパーティのpexpectモジュールを確認できます (ここに API があります)。

import pexpect
child = pexpect.spawn('foo')
child.expect('enter the string:')
child.sendline('STRING YOU KNOW TO ENTER')
child.close() # End Communication
于 2013-10-04T01:35:30.337 に答える
0

とを使用Popencommunicateます。

from subprocess import Popen, PIPE

process = Popen('foo', stdout=PIPE, stderr=PIPE)

(stdout, stderr) = process.communicate("YOUR INPUT HERE")

print stdout
于 2013-10-03T18:44:37.413 に答える