例如,shell脚本在提示符处获取一个整数并返回它。
Enter an integer:
--> 3
3
我正在使用subprocess.check_call(["./myScript"])
来运行shell脚本。如何自动发送"3"
in,如上例所示?到目前为止,我所有的搜索只恢复了如何使用命令行参数运行脚本,而不是这种手动输入。
答案 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()
功能。文档很有表现力。