您好,欢迎来到保捱科技网。
搜索
您的当前位置:首页python查询Mysql并输出到文本

python查询Mysql并输出到文本

来源:保捱科技网


学习Python后写的第二个脚本,逻辑有点乱,等以后在优化! #!/usr/bin/env python'''author:wenminCreated on 2013-4-23'''?import MySQLdb?class MySQLHelper: #配置数据库信息并连接 def __init__(self,host="****",user="****",password="****",port=****

学习Python后写的第二个脚本,逻辑有点乱,等以后在优化!

#!/usr/bin/env python
'''
author:wenmin
Created on 2013-4-23
'''
?
import MySQLdb
?
class MySQLHelper:
 #配置数据库信息并连接
 def __init__(self,host="****",user="****",password="****",port=****,charset="utf8"):
 self.host=host
 self.user=user
 self.password=password
 self.port=port
 self.charset=charset
 try:
 self.conn=MySQLdb.connect(host=self.host,user=self.user,passwd=self.password,port=self.port)
 self.conn.set_character_set(self.charset)
 self.cur=self.conn.cursor()
 except MySQLdb.Error as e:
 print("Mysql Error %d: %s" % (e.args[0], e.args[1]))
 #取出需要统计的数据库名称
 def db_name(self):
 un_db_name = ['information_schema','cz','ecshop','edutone','gz','mysql','newparent','parent','performance_schema','test','xx','yyhd']
 name = []
 try:
 self.cur.execute('show databases')
 for row in self.cur.fetchall():
 for i in row:
 if i not in un_db_name:
 name.append(i)
 return name
 except MySQLdb.Error as e:
 print("Mysql Error %d: %s" % (e.args[0], e.args[1]))
 #指定查询的数据库名称
 def selectDb(self,db):
 try:
 self.conn.select_db(db)
 except MySQLdb.Error as e:
 print("Mysql Error %d: %s" % (e.args[0], e.args[1]))
 #查询用户数
 def user_quantity(self):
 try:
 self.cur.execute('select count(distinct phone) from pc_user')
 for row in self.cur.fetchall():
 return row[0]
 except MySQLdb.Error as e:
 print("Mysql Error:%s\n" %(e))
 #查询用户详细信息
 def user_details(self,db):
 try:
 self.cur.execute('select a.phone,a.parents_name,a.student_name,a.type,c.grade_name,b.class_name,a.sex,"'+str(db)+'"from pc_user a,pc_class b,pc_grade c where a.class_id=b.id and a.grade_id=c.id group by a.phone')
 #for row in self.cur.fetchall():
 # return row
 s = self.cur.fetchall()
 return s
 except MySQLdb.Error as e:
 print("Mysql Error:%s\n" %(e))
 #查询议案数
 def monion_quantity(self):
 try:
 self.cur.execute('select count(distinct id) from pc_motions')
 for row in self.cur.fetchall():
 return row[0]
 except MySQLdb.Error as e:
 print("Mysql Error:%s\n" %(e))
 #查询有效议案
 def monion_details(self):
 try:
 self.cur.execute('select `motion_id`,count(*) from pc_motion_voterec group by motion_id having count(*)>5')
 # for row in self.cur.fetchall():
 # return row
 s = self.cur.fetchall()
 return s
 except MySQLdb.Error as e:
 print("Mysql Error:%s\n" %(e))
?
 def close(self):
 self.cur.close()
 self.conn.close()
?
if __name__ == '__main__':
 school_db_name = MySQLHelper()
 school = school_db_name.db_name()
 for i in school:
 file = open('jwh/%s' % i,'w')
 file.write("================================================\n")
 d_name = str(i)
 i = MySQLHelper()
 i.selectDb(d_name)
 file.write("user_quantity:"+str(i.user_quantity())+"\n")
 file.write("================================================\n")
 s=i.user_details(d_name)
 for p in s:
 for m in p:
 file.write(str(m)+' ')
 file.write("\n")
 file.write("================================================\n")
 file.write("monion_quantity:"+str(i.monion_quantity())+"\n")
 file.write("================================================\n")
 l=i.monion_details()
 for p in l:
 for s in p:
 file.write(str(s)+" ")
 file.write("\n")
 i.close()
 file.close()
 school_db_name.close()

Copyright © 2019- baoaiwan.cn 版权所有 赣ICP备2024042794号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务