Python os.system()将文本输入到脚本

时间:2014-04-28 16:46:58

标签: python bash os.system

我有一个需要自动化的脚本,因此它是一个.sh脚本,我想在python脚本中运行:类似这样:

import os
os.system('./script.sh -p 1234')

脚本script.sh需要用户输入3个字段,1)sudo密码,2)字符串和3)字符串。

Enter password for user: xxxx  #typed by me
Enter Auth Username: xxxx      #typed by me
Enter Auth Password: xxx       #typed by me

如何让python脚本输入/插入/传递这3个需要的值到script.sh

1 个答案:

答案 0 :(得分:5)

您可以使用subprocess.Popen启动脚本,使用communicate方法传递输入。像这样:

import subprocess

p = subprocess.Popen(['./script.sh', '-p', '1234'], 
                     stdin=subprocess.PIPE, stdout=subprocess.PIPE)
stdout, stderr = p.communicate(input='password\nauth username\nauth password\n')