我有一个应用程序的安装程序。 它有.SH和.bat为* nix中/ Windows操作系统。 在脚本会做一些事情,挂在那里,等待着一些其他的事情要做,然后按需要在命令窗口中输入 ,脚本将继续。
我想要做的所有的东西与蟒蛇。 我知道subprocess.open可以调用脚本,但林不知道该怎么办了“按回车键”的东西..
任何输入将被appraciated ..
我有一个应用程序的安装程序。 它有.SH和.bat为* nix中/ Windows操作系统。 在脚本会做一些事情,挂在那里,等待着一些其他的事情要做,然后按需要在命令窗口中输入 ,脚本将继续。
我想要做的所有的东西与蟒蛇。 我知道subprocess.open可以调用脚本,但林不知道该怎么办了“按回车键”的东西..
任何输入将被appraciated ..
您需要在安装程序的标准输入提供一个换行符。
单程:
subprocess.Popen('sh abc.sh < a_file_that_you_prepared.txt',
shell=True,
stdout=subprocess.PIPE)
另一个,大致相当于第一:
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)
第三种方式 - 很容易导致你的程序和安装程序之间的僵局:
x = subprocess.Popen('sh abc.sh',
shell=True,
stdout=subprocess.PIPE,
stdin=subprocess.PIPE)
...
x.stdin.write('\n')
一种方法是使用被使用raw_input
方法!
# Code
print "Please press ENTER to continue!"
raw_input()
# more code