1

我有一个应用程序的安装程序。它有用于 *nix/windows 操作系统的 .sh 和 .bat。在脚本中它会做一些事情并挂在那里,等待其他一些事情完成,然后需要Enter在该命令窗口中按下,脚本将继续。

我想用python做所有的事情。我知道 subprocess.open 可以调用脚本,但我不知道如何做“按 Enter”的事情..

任何输入都将被评估..

4

2 回答 2

3

一种是用的方法就是用的raw_input方法!

# Code
print "Please press ENTER to continue!"
raw_input()
# more code
于 2013-03-26T14:06:12.303 回答
2

您需要在安装程序的标准输入上提供换行符。

单程:

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')
于 2013-03-26T15:37:48.263 回答