2014-04-15 83 views
1

我正在运行mysql_secure_installation,它提示用户输入根数据库密码,并要求用户输入“是”或“否”来输入其他一些初始设置选项。我将如何捕获用户输入的root密码?如何使用Python从Bash提示捕获用户输入

我想是这样的:

capture = subprocess.Popen(['mysql_secure_installation'], stdout=subprocess.PIPE) 
root_pwd = capture.communicate() 

我想在默认的选项也吃其他提示。我怎样才能做到这一点?

+0

你可以试试这个http://stackoverflow.com/questions/4688441/how-can-i-set-a-用户密码功能于Linux的从-A-Python的脚本?RQ = 1 –

回答

1

要拦截用户输入的子进程透明,你可以使用pty.spawn()

import os 
import pty 

def read(fd): 
    data = os.read(fd, 512) 
    print('got input %r' % data) 
    return data 

pty.spawn('mysql_secure_installation', stdin_read=read)