这篇文章主要为大家展示了python如何实现处理mysql结果输出,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。
在运维过程中,经常需要读取mysql的结果输出并进行响应的处理,这节介绍如何用Python读取mysql结果表并进行相应的整理。
进行mysql结果文件输出:
mysql -h20.20.10.207 -uroot -ppasswd test -e "select sendorderid, (price*100),mob from interfacelog where merid='****' >/home/anan/interfacelog.txt ##这里写你需要执行的sql语句将结果打印成一个文件
/home/anan/interfacelog.txt内容如下,因为保密性要求,只显示一条数据
程序介绍: readInterfacelog
实现读取mysql的打印的结果并执行相应的语句。这里我们以重新输出结果作为演示。
具体实现
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2018-07-19 11:39:00
# @Author : Zhou Jiaan
# @Version : V1.0
import os
import sys
import time
import re
def readInterfacelog(merid):
with open('/home/anan/interfacelog.txt', 'r') as f: #读取mysql输出文件
lines = f.readlines()
for line in lines[2::1]: #因为第一第二行并不是我们需要处理的数据而是无效数据故我们忽略前两行直接读取后续我们需要的内容
interfacelog = re.split(r'[\t|\s]\s*', line) #对文件进行切分,
sendorderid = interfacelog[0]
price100 = interfacelog[1]
mob = interfacelog[2]
print(sendorderid, price100, mob)
###这里进行你需要对输出进行的操作。
# os.system('/usr/local/bin/MsgSrvClient -h *.*.*.* -p 6004 -w0 -e "IFTran SlowInt 1 %s %s %s NA 1 5000 120 NA 22 NA NA %s NA NA NA";'%(sendorderid,price100,merid,mob)) ##这是我的需求
time.sleep(0.1)
def main():
# merid=sys.argv[1]
try:
merid_num = sys.argv[1]
except Exception as e:
merid_num = input("请输入merid:")
else:
print("输出merid_num:{}".format(merid_num))
finally:
merid = merid_num
print(merid)
readInterfacelog(merid)
if __name__ == '__main__':
main()
补充知识:python打印mysql版本信息
#第一句话写成#!/usr/local/python不行,还不知道为啥
#!/usr/bin/env python
import MySQLdb
db = MySQLdb.connect("192.168.74.130","root","l","")
cursor=db.cursor()
cursor.execute("select version()")
data=cursor.fetchone()
print "Database version : %s " % data
db.close()
以上就是关于python如何实现处理mysql结果输出的内容,如果你们有学习到知识或者技能,可以把它分享出去让更多的人看到。
亿速云「云数据库 MySQL」免部署即开即用,比自行安装部署数据库高出1倍以上的性能,双节点冗余防止单节点故障,数据自动定期备份随时恢复。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。