测试自动化学习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

 

 
posted @ 2019-05-17 01:20  fatenet  阅读(311)  评论(0编辑  收藏  举报