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('出错信息') #级别最高——只打印错误信息,不打印调试信息