python - 如何使用 Python 从 Bash 提示符中捕获用户输入

标签 python mysql bash subprocess

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

我在想:

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

我还想为其他提示提供默认选项。我该怎么做?

最佳答案

要透明地拦截子进程的用户输入,您可以使用 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)

关于python - 如何使用 Python 从 Bash 提示符中捕获用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23074146/

相关文章:

python - 正则表达式:如何匹配字符串末尾的键值对序列

python - sys.stdin.readline() 和 input() : which one is faster when reading lines of input, 为什么?

如果第一列相等,则Mysql按第二列分组?

php - 在 mySQL 中自动创建包含填充数据的表或行

MySQL命令行执行

xml - 从 xml 文件中剥离注释并漂亮地打印它

linux - 如何在 bash 脚本中反转 for 循环

python - NetworkX中,如何获取包含节点数据的DFS树?

python - 如何在 matplotlib 中调整 x 轴

mysql - 存储 1TB 数据的数据库软件