Я забыл упомянуть, что если вы пойдете по пути использования метода __init __ (), вам придется создавать глобальные переменные x, y и z, иначе они не будут передаваться в ваш метод run ().
у скрипт на Python для запуска какой-то команды. Некоторые из этих команд требуют, чтобы пользователь ввел пароль, я попытался ввести данные в их стандартный ввод, но это не работает, вот две простые программы на Python, представляющие проблему
input.py
import getpass
print raw_input('text1:')
print getpass.getpass('pass1:')
print getpass.getpass('pass2:')
put_data.py
import subprocess
import getpass
def run(cmd, input=None):
stdin=None
if input:
stdin=subprocess.PIPE
p = subprocess.Popen(cmd, shell=True, stdin=stdin)
p.communicate(input)
if p.returncode:
raise Exception('Failed to run command %r' % cmd)
input ="""text1
password1
password2
"""
run('python test.py', input)
А вот и вывод
[guest@host01 ~]# python put_data.py
text1:text1
pass1:
Это просто остановится на поле pass1. Вот проблема, почему я не могу поместить данные в stdin для подачи данных в поле пароля? Как я могу записать данные в поля пароля?