Python:使用手动输入运行shell脚本

时间:2016-05-09 12:57:54

标签: python shell

例如,shell脚本在提示符处获取一个整数并返回它。

Enter an integer:
--> 3
3

我正在使用subprocess.check_call(["./myScript"])来运行shell脚本。如何自动发送"3" in,如上例所示?到目前为止,我所有的搜索只恢复了如何使用命令行参数运行脚本,而不是这种手动输入。

2 个答案:

答案 0 :(得分:1)

正如之前的回答解释subprocess.Popen可用于创建可与communicate交互的流程。 communicate将字符串作为参数传递给创建的进程并返回元组(stdout, stderr)。下面是两个与之通信的Python脚本的简短示例:

儿童

nums = raw_input()
print sum((int(n) for n in nums.split()))

<强>父

import subprocess

p = subprocess.Popen(['python', 'test.py'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
out, err = p.communicate('3 4 5')
print 'From other process: ' + out

<强>输出

From other process: 12

答案 1 :(得分:0)

您可能想要使用subprocess.Popen.communicate()功能。文档很有表现力。