使用Python捕获MySQL查询语句的输出

0 投票
1 回答
962 浏览
提问于 2025-04-15 20:32

我想用Python2.4来获取mysql命令的输出。不过有个小问题,我需要通过echo来传递SQL语句。

echo 'SELECT user FROM mysql.user;' | mysql

我看到有些例子使用了call、os.system和popen,但我想知道在我的Python版本中,哪个方法最适合用来捕获输出并把它放进一个元组里。

谢谢!

1 个回答

1

subprocess模块是一个非常灵活的工具,用来运行命令并控制输入和输出。下面的代码会运行一个命令,并把输出结果以行的形式保存到一个列表里:

import subprocess

p = subprocess.Popen(['/bin/bash', '-c', "echo 'select user from mysql.user;' | mysql" ],
    stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

lines = [line for line in p.stdout]

在Windows系统上,bash -c需要换成cmd /c来使用。

撰写回答