Определенно нет необходимости в двух классах, чтобы сделать что-то подобное.Все, что вам нужно сделать, это создать другой метод в put_data.py с именем init_ (), а затем сделать что-то вроде:
x = raw_input('text1:')
y = getpass.getpass('pass1:')
z = getpass.getpass('pass2:')
Затем вы можете просто использовать pexpect длясделай все остальное:
child = pexpect.spawn(x, timeout=180)
while True:
x = child.expect(["(current)", "new", "changed", pexpect.EOF, pexpect.TIMEOUT])
if x is 0:
child.sendline(y)
time.sleep(1)
if x is 1:
child.sendline(z)
time.sleep(1)
if x is 2:
print "success!"
break
Тада!Конечно, вы получите кучу ошибок с таким кодом.Вы должны всегда использовать предоставленные методы, если вы используете linux, может быть проще запустить os.system ("passwd") и позволить оболочке позаботиться обо всем остальном.Кроме того, если это вообще возможно, всегда избегайте использования getpass, это устарелый устаревший метод, который может испортить ситуацию в будущем.