Python os.system() 向脚本输入文本
我有一个需要自动化的脚本,它是一个 .sh
脚本,我想在一个 Python 脚本里面运行它,类似这样:
import os
os.system('./script.sh -p 1234')
这个 script.sh
脚本需要用户输入三个内容,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 脚本自动输入这三个需要的值到 script.sh
中呢?
1 个回答
10
你可以用 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')