私は、pexpectを使って対話型のpythonスクリプトを自動化しようとしています。しかし、制御が見通しに戻った後には進まない。pexpect内のpythonスクリプトと対話する
モックアップスクリプトは、同じことをシミュレートしようとしています。
---------------- python script(script.py) -----------------
def issue_command():
print "********** in issue_command ********"
def dummy_check():
print "********** in dummy_check ********"
raw_input("Now Press enter for next command")
issue_command()
if __name__ == "__main__":
dummy_check()
--------------------------------Pexpect script(pexp.py)-----------------------
import pexpect
import sys
def quick_test():
pobj = pexpect.spawn("/bin/bash")
pobj.logfile = sys.stdout
pobj.sendline("script.py")
pobj.expect("Now Press enter for next command")
print "\n1st part is done. Now execute the oil command"
pobj.sendline()
if __name__ == "__main__":
quick_test()
-------------------------------------------------------------------
出力をフォローすると予想されます。
$python pexp.py
********** in dummy_check ********
Now Press enter for next command -------------------> It should wait here. Upon pressing enter it should print the next line.
********** in issue_command ********
$
代わりに、それはすなわち、それは間に戻った後、スクリプトを使って をやりとりできなかったpexpect第二行を印刷しません。
$ python pexp.py
./script.py
********** in dummy_check ********
Now Press enter for next command -----> It ignored sendline() and did not execute issue_command function.
$
Iはまた、代わりに(/ binに/ bashの)別のシェルを作成する)(pexpect.spawn直接スクリプト(script.py)を通過しようとしています。それは助けになりませんでした。 私は何が間違っているのか分かりません。誰か助言してもらえますか?
ありがとうございました。