2014-04-15 124 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)