测试自动化学习7
python读取Excel
import xlrd book = xlrd.open_workbook('my_user-bak.xls') sheet = book.sheet_by_index(0) print(sheet.row_values(0)) # 某一行数据 print(sheet.col_values(0)) # 某一列数据 print(sheet.cell(0,0).value) # 某个单元格的数据 print(sheet.cell(1,2).value) # 某个单元格的数据 print(sheet.nrows) # 总共多少行 print(sheet.ncols) # 总共多少列 print('----') for i in range(sheet.nrows): # 打印所有行 print(sheet.row_values(i))
python修改Excel内容
import xlrd from xlutils import copy """ 1.用xlrd模块打开Excel 2.用xlutils模块里面的copy复制一份 3.获取到sheet页 4.修改 """ book = xlrd.open_workbook('students.xls') new_book = copy.copy(book) sheet = new_book.get_sheet(0) sheetr = book.sheet_by_index(0) sheet.write(0,6,'年龄阶段') for i in range(1, sheetr.nrows): if sheetr.cell(i,3).value < 18: sheet.write(i, 6, '骚年') elif 18 <= sheetr.cell(i,3).value < 30: sheet.write(i, 6, '成年人开车') else: sheet.write(i, 6, '老当益壮') new_book.save('students.xls')
python发邮件
import yagmail user = 'xxx@qq.com' passwd = 'xxxxx' # 在系统账户设置开启授权码访问,不可直接使用qq密码登录 smtp_host = 'smtp.qq.com' mail = yagmail.SMTP(user=user,password=passwd,host=smtp_host,smtp_ssl=True) # 连上邮箱 mail.send(to='@qq.com', cc='xxxaa@qq.com', subject='好好睡', contents='多吃多吃', attachments=['test.py', '写日志.py']) # 多个人传入list
操作Redis,可以使用rdm图形软件操作辅助观察,也可以直接用python操作
import redis host = '127.0.0.1' passwd = 'xxxxx' r = redis.Redis(host=host, password=passwd, db=15, decode_responses=True) # 选择第几个db,一般0-15 # decode_responses=True,返回的就不是bytes类型了,就是字符串了 # string类型 # r.set('session_id_dd','s1243sdfsdfs') #新增和修改 # # result = r.get('session_id_') # # r.delete('session_id_dd') #删除指定的key # # r.flushdb() #清除当前数据库里面所有的key # # r.flushall() #清除所有数据库里面的所有key # print(r.keys())#获取到当前数据库里面有哪些key # print(result) # print(result.decode()) #decode是把bytes类型变成字符串 # 写一个不存在的key,会怎样 # hash类型 # print(r.hget('szz_stu','dsk')) print(r.hset('szz_stu', 'gxn', 'sdfsdfsfsf')) # r.hdel('szz_stu','gxn') r.hmset('szz_stu', {"ldd": 'dsk', 'cwl': 'brf'}) # 批量往hash类型里面set数据 # r.hset('szz_stu','gxn','{"money":11111,"session_id":"xxxxxxx"}') print(r.hgetall('szz_stu')) print(r.type('szz_stu')) # 把a的数据,全部迁移到b上面 # 1、连上aredis和bredis # 2、从aredis里面获取到所有的key [ ] # 3、判断key的类型,如果是string类型,用get获取数据,set到新的bredis里面 # 迁移redis host = '127.0.0.1' passwd = 'xxx' r = redis.Redis(host=host, password=passwd, db=15, decode_responses=True) # 0-15 r2 = redis.Redis(host=host, password=passwd, db=15, decode_responses=True, port=6378) # 0-15 for k in r.keys(): if r.type(k) == 'string': value = r.get(k) r2.set(k, value) elif r.type(k) == 'hash': value = r.hgetall(k) # 首先获取到hashkey里面的所有数据 r2.hmset(k, value) # 然后把所有的数据set进去 # 管道 # p = r.pipeline() #新建了一个管道,操作比较多的时候用管道 # p.set('abc','aa') # p.get('xx') # p.hget('xxx') # p.execute() #执行
nnlog写日志模块
import nnlog log = nnlog.Logger('test.log', level='error', backCount=5, when='S') # D H M S log.debug('返回结果...') # 一些调试信息,看变量值这些 log.info('info...') # 一些提示信息 log.warning('waring') # 出警告了 log.error('error...') # 出错的时候打印的 # log.surprise()
request模块调用接口,可以实现get、post、下载等
import requests # url = 'http://api.nnzhp.cn/api/user/stu_info' # d = {'stu_name':'矿泉水2'} # # result = requests.get(url, d) # print(result.json()) # 结果转成字典 # print(result.text) # 结果转成字符串方便写入文件 # url = 'http://api.nnzhp.cn/api/user/login' # data = {'username':'niuhanyang', 'passwd':'aA123456'} # req = requests.post(url, data) # print(req.json()) url = 'http://api.nnzhp.cn/api/user/gold_add' data = {'stu_id': 2, 'gold': 1111} # cookie = {'niuhanyang':'b500d8a2f545102c8afa85135224149c'} cookie2 = {'cookie': 'niuhanyang=b500d8a2f545102c8afa85135224149c'} # 这种方式抓包到数据可以直接粘贴,不用转k-v r = requests.post(url, data, headers=cookie2) print(r.text) #入参是json的 # data = { # "name": "矿泉水33333", # "grade": "双子座", # "phone": "12123624321", # "sex": "未知", # "addr": "天通苑", # "age": 38 # } # # url = 'http://api.nnzhp.cn/api/user/add_stu' # req = requests.post(url,json=data) # print(req.text) # url='http://api.nnzhp.cn/api/file/file_upload' # data = {'file':open('上周作业.py','rb')} # req = requests.post(url,files=data) # print(req.text) # url = 'http://aliuwmp3.changba.com/userdata/userwork/12107482.mp3' url='https://aliimg.changba.com/cache/photo/18189396_640_640.jpg' req = requests.get(url) with open('aqmm.jpg','wb') as fw: fw.write(req.content)
模块
1、一个python文件就是一个模块。
2、
1、自己写的
2、标准模块,os time random hashlib
3、第三方模块 pymysql xlwt
1、import模块的实质就是把这个python文件执行了一遍(调试模块代码时,写在 if __name__ == '__main__': 下面的调试执行代码,在import的时候不会被执行)
2、查找模块的顺序
1、导入模块的时候首先从当前目录下找
2、如果当前目录下没有,就是去python的环境变量里面找
Mac OX 设置pip国内镜像,下载速度超快
$ vim ~/.pip/pip.conf [global] index-url = http://mirrors.aliyun.com/pypi/simple/ [install] trusted-host=mirrors.aliyun.com