|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- # -*- coding: UTF-8 -*-
- """
- Created on Fri Sep 16 19:28:24 2016
- @author: Administrator
- """
- import pymssql
- import gc
- #输入群号
- def input_num():
- qunnum=input(u"请输入一个号码:")
- return qunnum
- #通过QQ查所有群号数据库名
- def qq_cq(data_index,xls_index):
- qq_cq_num='GroupData'+str(data_index)+'.[dbo].[Group'+str(xls_index)+']'
- return qq_cq_num
- #通过QQ号查群号
- def qq_number_cq(QQnumber):
- data_index=1
- xls_index=1
- qqnum_list=[]
- conn=pymssql.connect(host=".",user="sa",password="6631611HLB",charset="GB2312")
- cur=conn.cursor()
- while xls_index<=1100:
- qq_xls_name=qq_cq(data_index,xls_index)
- #print qq_xls_name
- cur.execute('SELECT [QQNum],[Nick],[QunNum] FROM '+qq_xls_name+' where QQNum='+str(QQnumber))
- qunnum_list= cur.fetchall()
- if qunnum_list:
- qqnum_list.extend(qunnum_list)
- xls_index=xls_index+1
- if (xls_index%100)==1:
- data_index=data_index+1
- conn.close()
- return qqnum_list
- #通过群号查询群名称数据库表名
- def qunxlsname(qunxls_index):
- if qunxls_index%10000000:
- qun_num=qunxls_index/10000000+1
- else:
- qun_num=qunxls_index/10000000
- qun_name='QunInfo'+str(qun_num)
- if qunxls_index%1000000:
- qunxls_num=qunxls_index/1000000+1
- else:
- qunxls_num=qunxls_index/1000000
- xls_name='.[dbo].[QunList'+str(qunxls_num)+']'
- return qun_name+xls_name
- #通过群号查询群名称
- def put_qunlist(qqnum_list):
- if qqnum_list:
- conn=pymssql.connect(host=".",user="sa",password="6631611HLB",charset="GBK")
- cur=conn.cursor()
-
- qqNIKE_list=[]
- for qunnumber in qqnum_list:
- qunxls_index=qunnumber[2]
- qunxls_name=qunxlsname(qunxls_index)
- #print qunxls_name
- cur.execute('SELECT [Title],[QunNum] FROM '+qunxls_name+' where QunNum='+str(qunxls_index))
- quncx_name=cur.fetchall()
- if quncx_name:
- qqNIKE_list.extend(quncx_name)
- conn.close()
- return qqNIKE_list
- #输出QQ号及群名称
- def put_qq_nike(qqnum_list,qqNIKE_list):
- from prettytable import PrettyTable
- x = PrettyTable([u'序号',u'QQ号',u'昵称',u'群号',u'群名'])
- x.align[u'序号'] = "l" # 以name字段左对齐
- x.padding_width = 1 # 填充宽度
-
- if len(qqnum_list):
- for i in range(len(qqnum_list)):
- if (len(qqNIKE_list)-i)>0:
- x.add_row([i,qqnum_list[i][0],qqnum_list[i][1],qqnum_list[i][2],put_qq_nike_1(i,qqnum_list,qqNIKE_list)])
- else:
- x.add_row([i,qqnum_list[i][0],qqnum_list[i][1].center(15),qqnum_list[i][2],''])
- print(x)
- #通过群号查询群名称对应的群号
- def put_qq_nike_1(i,qqnum_list,qqNIKE_list):
- qunnumber=qqnum_list[i][2]
- for j,k in qqNIKE_list:
- if k==qunnumber:
- return j
-
- #群号查找QQ成员列表数据库表名
- def quncy_cz_xlsname(qunnamber):
- if qunnamber%10000000:
- quncy_qun_num=qunnamber/10000000+1
- else:
- quncy_qun_num=qunnamber/10000000
- quncy_qun_name='GroupData'+str(quncy_qun_num)
- if qunnamber%100000:
- quncy_cz_num=qunnamber/100000+1
- else:
- quncy_cz_num=qunnamber/100000
- quncy_cz_name='.[dbo].[Group'+str(quncy_cz_num)+']'
- return quncy_qun_name+quncy_cz_name
- #群序号得到群号码
- def getqunmumber(index,qqnum_list):
- qunmumber=qqnum_list[index][2]
- return qunmumber
- #群号查询QQ成员列表
- def quncy_cz(qunnamber):
- conn=pymssql.connect(host=".",user="sa",password="6631611HLB",charset="GB2312")
- cur=conn.cursor()
- xls_name=quncy_cz_xlsname(qunnamber)
- #print xls_name
- cur.execute('SELECT * FROM '+xls_name+' where QunNum='+str(qunnamber))
- row = cur.fetchall()
- from prettytable import PrettyTable
- y = PrettyTable([u'QQ号',u'昵称',u'年龄',u'性别'])
- y.align[u'QQ号'] = "l" # 以name字段左对齐
- y.padding_width = 1 # 填充宽度
- if row:
- for qqqun_nike in row:
- y.add_row([qqqun_nike[1],qqqun_nike[2],qqqun_nike[3],qqqun_nike[4]])
- #print '%-12s%-20s%-6s%-6s' %(qqqun_nike[1],qqqun_nike[2],qqqun_nike[3],qqqun_nike[4])
- print(y)
- conn.close()
- def zhifu(zhi):
- zhi.decode('utf-8','ignore').encode('GB2312','ignore')
- return zhi
-
- while True:
- index=input_num()
- if index>10000:
- qqnum_list=qq_number_cq(index)
- qqNIKE_list=put_qunlist(qqnum_list)
- put_qq_nike(qqnum_list,qqNIKE_list)
- elif index<len(qqnum_list):
- qunnumber=getqunmumber(index,qqnum_list)
- quncy_cz(qunnumber)
- else:
- put_qq_nike(qqnum_list,qqNIKE_list)
复制代码
关于PYTHON CMD里进行乱码?IDLE正常CMD乱码
在 cmd 里 执行 chcp 65001
右键点击cmd标题栏 -> 属性 ,把字体设为 lucida console
|
|