使用Python捕获MySQL查询语句的输出
我想用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来使用。