例如,shell 脚本在提示符处获取一个整数并返回它。
Enter an integer:
--> 3
3
我在用着subprocess.check_call(["./myScript"])
运行 shell 脚本。我怎样才能自动发送"3"
如上例所示?到目前为止,我所有的搜索只恢复了如何使用命令行参数运行脚本,而不是这种手动输入。
正如之前的答案所解释的subprocess.Popen https://docs.python.org/2/library/subprocess.html#popen-constructor可用于创建可以交互的流程communicate https://docs.python.org/2/library/subprocess.html#subprocess.Popen.communicate. communicate
接受字符串作为参数,该参数将传递给创建的进程并返回元组(stdout, stderr)
。下面是两个与之通信的 Python 脚本的简短示例:
Child
nums = raw_input()
print sum((int(n) for n in nums.split()))
Parent
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
Output
From other process: 12
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)