Excel操作、requests库、redis、异常处理

excel读操作;

import xlrd

book = xlrd.open_workbook('db_wh_data.xls') #打开excel
sheet1 = book.sheet_by_name('db_data')  #通过sheet名称,获取sheet对象
sheet2 = book.sheet_by_index(0)  #通过sheet索引获取sheet对象

print(sheet1.cell_type(0,0)) #获取单元格数据类型:0-null,1-string,2-number,3-date,4-boolen,5-error
print(sheet1.cell(0,0).value) #获取单元格的内容
print(sheet2.cell_value(0,0))#获取单元格的内容
print(sheet1.row_values(1))#取整行的数据,[16.0, 'apple手表', 1999.0, 50.0, 'write']
print(sheet2.col_values(0))#取整列的数据['id', 16.0, 17.0, 188.0]

excel写操作;

import xlwt

book = xlwt.Workbook() #创建一个excel对象
sheet = book.add_sheet('sheet1') #添加一个sheet
sheet.write(0,0,'value')#写入单元格
book.save('new_book.xls')#保存excel并命名

网络编程;

requests库创建网络访问,方法:get、post、head(获取HTML网页头部信息的方法,对应于HTTP的HEAD)、delete、put

get请求

requests.get(url,params = None,**kwargs)
req
= requests.get(url,params={'stu_name':'abc'})
print(req.json()) #返回的json直接帮你转成了字典 print(req.text) #返回的就是字符串,如果返回的不是json的话,就要用它了 print(req.status_code) #返回的http状态码
print(req.cookies)#获取cookies
print(req.headers)#获取headers
print(req.content) #返回的bytes类型的,下载文件的时候用它
post请求

requests.post(url,data = None,json = None,**kwargs)

#data:字典、字节序列或文件,Request的内容

#json:JSON格式的数据,Request的内容

url="http://api.nnzhp.cn/api/user/login"
req = requests.post(url,data={"username":"niuhanyang","passwd":"aA123456"})
print(req.json())


*******获取requests请求返回的cookie****
response = requests.get(url=url, headers=headers)
# 获取requests请求返回的cookie
cookie = requests.utils.dict_from_cookiejar(response.cookies)
return cookie
发送header、cookie

url="https://qun.qq.com/cgi-bin/qun_mgr/get_group_list"
data ={"bkn": 208992859}
head = {User-Agent:}
cookie = {'pgv_pvi': '6636933120'}
req = requests.post(url,data=data,json=data,cookies=cookie,headers= head)
下载文件
url = "https://q4.qlogo.cn/g?b=qq&nk=516481730&s=140"
req = requests.get(url)
f = open('wjl.jpg','wb')#wb,写入二进制
f.write(req.content)#获取返回的bytes类型
f.close()
#上传文件
url = "http://api.nnzhp.cn/api/file/file_upload"
f = open('sxy.mp4','rb')
data = {'file':f}
r = requests.post(url,files=data)
print(r.json())
f.close()

redis操作;

Redis一般作为缓存数据库,存储key-value数据,支持数据类型为:string(字符串),hash(哈希),list(列表),set(集合),常用string和hash

import redis
r = redis.Redis(host="118.24.3.40",port=6379,password="HK139bc&*",decode_responses=True,db=) #连接redis,可指定db

#字符串类型 r.set("wh_session","wh123",60) # 存入redis,过期时间可选=60, 默认写入db0 print(r.get('wh_session'))#获取 r.delete('wh_session')#删除

 哈希数据类型为{key:{key:value}}

#哈希数据类型
r.hset("wh_session","wh123",'w100') # 存入redis
print(r.hget('wh_session','wh123'))#获取
r.hdel('wh_session','wh123') #删除
#redis其它操作
print
(r.keys()) #所有的key print(r.keys('*session*'))#模糊匹配 print(r.exists("lcl_session"))#key是否存在 print(r.type("wh_session"))#数据力行 r.expire("ssy_student",50)#指定某个key的过期时间 # r.flushall() #清空所有数据库里面的key # r.flushdb() #清空当前数据库里面的所有key

异常处理;

l = [1,2,3]
try:
    for i in l:
        print(i)
except NameError as e1:
    print("异常情况1",e1)
except Exception as e2:
    print("异常情况2",e2)
else:
    print('无异常出现')  #无异常情况执行else
finally:
    print("什么时候执行finally?") #有无异常情况都会执行finally

 写日志;

import nnlog

log01= nnlog.Logger('test.log',level='warn',backCount=5,when ='s',interval=1)
#filename:log的路径,文件不存在会在当前路径下主动创建
#level:level:四个级别,debug、info、warn、error,debug是最低的级别,会打印所有信息
#backCount:backCount :保存最近的几个log
#when:产生频率:S-每秒;D-每天;H-每小时
#interval是间隔多久生成一个日志文件,默认是1天

log01.debug('调试信息')   #级别最低——打印的内容越多——性能最低——开发阶段用debug
log01.info('正常的打印信息')
log01.warning('警告')    #生产环境一般打印warning或者error。
log01.error('出错信息')   #级别最高——只打印错误信息,不打印调试信息
原文地址:https://www.cnblogs.com/whcp855/p/12960413.html