python實現處理mysql結果輸出方式
在運維過程中,經常需要讀取mysql的結果輸出并進行響應的處理,這節介紹如何用Python讀取mysql結果表并進行相應的整理。
進行mysql結果文件輸出:
mysql -h10.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.0import osimport sysimport timeimport redef 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 pythonimport MySQLdbdb = MySQLdb.connect('192.168.74.130','root','l','')cursor=db.cursor()cursor.execute('select version()')data=cursor.fetchone()print 'Database version : %s ' % datadb.close()
以上這篇python實現處理mysql結果輸出方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章: