处理异常
1 money = 1000 2 num = input('Please enter a num:') 3 try: 4 num = float(num) 5 res = money/num 6 7 except Exception as e:#能获取到所有的异常 8 # except ValueError as e:#单个异常,出现异常了,就走except下面的代码 9 # # print(e) 10 print('你出现异常了') 11 print('你输入的价格不合法。。') 12 # except ZeroDivisionError as e:#单个异常 13 # print('除数不能为0') 14 else:#没有出现异常 15 money-=num 16 print('你的余额是%s'%money) 17 finally:#无论是否有异常都会执行 18 print('dddddd')
封装操作redis
1 import redis 2 3 class MyRedis: 4 def __init__(self,host,password,port=6378,db=0): 5 self.r = redis.Redis(host=host,password=password,port=port,db=db) 6 7 def op_str(self,k,v=None,ex=-1): 8 if v: 9 self.r.set(k,v,ex)#set 10 else: 11 res = self.r.get(k) 12 if res: 13 return res.decode() 14 15 def op_hash(self,name,k=None): 16 if k:#判断取单个值 17 res = self.r.hget(name,k) 18 if res: 19 return res.decode() 20 else:#取所有的值 21 res = {} 22 for k,v in self.r.hgetall(name).items(): 23 res[k.decode()]=v.decode() 24 return res
封装操作mysql
1 import pymysql 2 3 class MyDb: 4 def __init__(self,host,password,user,db,port=3306,charset='utf8',autocommit=True): 5 try: 6 self.coon = pymysql.connect(host=host,password=password, 7 user=user,db=db,port=port, 8 charset=charset,autocommit=autocommit) 9 except Exception as e: 10 print('数据库连接失败!错误信息是%s'%e) 11 raise Exception('数据库连接失败!错误信息是%s'%e) 12 else: 13 self.cur = self.coon.cursor(pymysql.cursors.DictCursor) 14 15 def select_all(self,sql): 16 try: 17 self.cur.execute(sql) 18 except Exception as e: 19 res = 'sql语句错误,%s ,错误的sql是【%s】'%(e,sql) 20 print(res) 21 else: 22 res = self.cur.fetchall() 23 return res 24 def select_one(self,sql): 25 try: 26 self.cur.execute(sql) 27 except Exception as e: 28 res = 'sql语句错误,%s ,错误的sql是【%s】'%(e,sql) 29 print(res) 30 return res 31 else: 32 res = self.cur.fetchone() 33 return res 34 35 36 def other_sql(self, sql): 37 try: 38 self.cur.execute(sql) 39 except Exception as e: 40 res = 'sql语句错误,%s ,错误的sql是【%s】' % (e, sql) 41 print(res) 42 return res 43 def close(self): 44 print('关闭了!') 45 self.cur.close() 46 self.coon.close()
封装操作oracle
1 import cx_Oracle 2 class MyOracle:#操作oracle数据库 3 def __init__(self,username,password,host,port,instance): 4 try: 5 Log.info('连接oracle数据库') 6 self.conn = cx_Oracle.connect("%s/%s@%s:%s/%s" % (username,password,host,port,instance)) 7 self.cursor = self.conn.cursor() 8 except Exception as e: 9 Log.error("数据库连接出错了!", e) 10 def execute(self,sql): 11 try: 12 self.cursor.execute(sql) 13 self.conn.commit() 14 except Exception as e: 15 Log.error("sql语句%s出错了!"%sql, e) 16 17 def fetchone(self,sql): 18 try: 19 self.cursor.execute(sql) 20 except Exception as e: 21 Log.error("sql语句%s出错了!"%sql, e) 22 else: 23 return self.cursor.fetchone() 24 25 def fetchall(self, sql): 26 try: 27 self.cursor.execute(sql) 28 except Exception as e: 29 Log.error('sql语句有误!%s' % e) 30 else: 31 return self.cursor.fetchall() 32 33 def table_exists(self, table_name): 34 sql = "select count(*) from user_tables where table_name =upper('%s')" % table_name 35 if self.fetchone(sql): 36 return True 37 38 def close(self): 39 self.cursor.close() 40 self.conn.close()
网络编程:抓取一个群里的qq头像
1 import requests,pymongo,os 2 3 url = "https://qun.qq.com/cgi-bin/qun_mgr/search_group_members" 4 5 data = {"gc":728755825,"st":0,"end":200,"sort":0,"bkn":729730748} 6 header = {'Cookie':'pgv_pvi=4788783104; pgv_si=s6143795200; _qpsvr_localtk=0.862307479956725; pt2gguin=o1334933924; uin=o1334933924; skey=@kGLYaQbAR; ptisp=cnc; RK=TxDF2YA1bL; ptcz=91d386bcdfa51982aaa3605162d022ecf50b82dde22714d669df3d7fe14221b0; p_uin=o1334933924; pt4_token=5-Lm7rK62Wis6IJSPFU6mlTKzxfBkEe*xNqd45Vbuyc_; p_skey=hugzXms-cMfHsaJLZI47*L3qs0y4ChTV2jLXmF2HMxw_'} 7 8 res = requests.post(url=url,data=data,headers=header) 9 mems = res.json().get("mems")#? 10 11 client = pymongo.MongoClient(host="ip",port=27017) 12 db = client['qq_group'] 13 table = db['zjr'] 14 15 for i in mems: 16 mem = { 17 "qq":i.get("uin"), 18 "gender":i.get("g"), 19 "nick":i.get("nick"), 20 "card":i.get("card"), 21 "qage":i.get("qage") 22 } 23 if mem.get("gender") == 0: 24 mem['gender'] = "男" 25 elif mem.get("gender") == 1: 26 mem['gender'] = "女" 27 else: 28 mem['gender'] = "未知" 29 30 if mem.get("card") == "": 31 mem['card'] = "没有群名片" 32 33 table.insert_one(mem) 34 qq="http://q4.qlogo.cn/g?b=qq&nk={0}&s=140" 35 pics = requests.get(qq.format(mem.get("qq"))) 36 abs_path = os.path.join()#? 37 with open(str(mem.get("qq"))+".jpg","wb") as f: 38 f.write(pics.content)