zoukankan      html  css  js  c++  java
  • 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('出错信息')   #级别最高——只打印错误信息,不打印调试信息
  • 相关阅读:
    [zt]在XML序列化时去除默认命名空间xmlns:xsd和xmlns:xsi
    线程间操作无效: 从不是创建控件“...”的线程访问它。
    Unity IoC + WCF + wsHTTPBinding + Certificate Authorization
    [转]PowerDesigner使用教程 —— 概念数据模型
    C# Post数据和接收简单示例【摘】
    163相册验证码图片的识别手记之一 去除干扰
    实现WCF和Unity 的集成
    Html.ActionLink 几种重载方式说明及例子
    如何从程序员到项目经理【转帖51cto】
    OSG闪存
  • 原文地址:https://www.cnblogs.com/whcp855/p/12960413.html
Copyright © 2011-2022 走看看