アプリケーションのインストーラーがあります。* nix /windowsos用の.shと.batがあります。スクリプトでは、何かを実行してそこでハングし、他の処理が行われるのを待ってからEnter、そのコマンドウィンドウで押す必要があります。スクリプトは続行されます。
私はPythonですべてのことをやりたいです。subprocess.openがスクリプトを呼び出すことができることは知っていますが、「Enterキーを押す」ことを行う方法がわかりません。
すべての入力が承認されます。
アプリケーションのインストーラーがあります。* nix /windowsos用の.shと.batがあります。スクリプトでは、何かを実行してそこでハングし、他の処理が行われるのを待ってからEnter、そのコマンドウィンドウで押す必要があります。スクリプトは続行されます。
私はPythonですべてのことをやりたいです。subprocess.openがスクリプトを呼び出すことができることは知っていますが、「Enterキーを押す」ことを行う方法がわかりません。
すべての入力が承認されます。
1つの方法は、メソッドを使用するraw_input
ことです。
# Code
print "Please press ENTER to continue!"
raw_input()
# more code
インストーラーのstdinに改行を指定する必要があります。
一方通行:
subprocess.Popen('sh abc.sh < a_file_that_you_prepared.txt',
shell=True,
stdout=subprocess.PIPE)
もう1つは、最初のものとほぼ同等です。
input_file = open('a_file_that_you_prepared.txt', 'r')
subprocess.Popen('sh abc.sh',
shell=True,
stdout=subprocess.PIPE,
stdin=input_file)
input_file.close()
別の方法-うまくいくかもしれませんが、うまくいかないかもしれません:
subprocess.Popen('sh abc.sh < /dev/null',
shell=True,
stdout=subprocess.PIPE)
3番目の方法-プログラムとインストーラーの間でデッドロックが発生する可能性があります。
x = subprocess.Popen('sh abc.sh',
shell=True,
stdout=subprocess.PIPE,
stdin=subprocess.PIPE)
...
x.stdin.write('\n')