库,路径处理以及时间戳
在python里面,常用的库分为如下两类:
1、标准库:安装了Python的解释器,解释器内部自动带的
2、第三方的库,由很多的顶级程序员开发的,需要额外的安装
安装:打开控制台直接输入 pip3 install 第三方库的名称
pip3 install pytest 单元测试框架
pip3 install flask 轻量级web框架
pip3 install django 全栈web框架
pip3 install requests 接口测试
pip3 install pymysql 操作mySql
pip3 install xlrd 操作excel
卸载:pip3 uninstall 第三方库的名
常用的库有:
pip3 install pytest
pip3 install requests
pip3 install pymysql
pip3 install xlrd
os模块主要是对路径的处理
获取当前路径
print(os.path.dirname(__file__))
获取当前路径上一级目录
print(os.path.dirname(os.path.dirname(__file__)))
获取目录下所有文件
for i in os.listdir('c:/'):
print(i)
路径的拼接--.自动获取路径
base_dir=os.path.dirname(os.path.dirname(__file__))
# print(base_dir)
logPath=os.path.join(base_dir,'UI测试','log.txt')
f=open(logPath,'r',encoding='utf-8')
print(f.read())
f.close()
首先对路径进行获取,
base_dir=os.path.dirname(os.path.dirname(__file__))
获取到路径后把想要的文件夹拼接起来
logPath=os.path.join(base_dir,'UI测试','log.txt')
然后打开读取它的内容就好了(打开的文件夹记得关闭f.close())
time模块提供各种与时间有关的库
import time as t print('获取时间戳:',t.time()) print('获取当前时间的字符串格式:',t.ctime()) print('时间戳转为字符串:',t.ctime(t.time())) print('时间戳转为struct_time:',t.gmtime(t.time()).tm_year) print('时间戳转为本地时间:',t.localtime(t.time())) print('获取中国时间:',t.strftime('%y-%m-%d %H:%M:%S',t.localtime()))
获取时间戳: 1638177270.6436515
获取当前时间的字符串格式: Mon Nov 29 17:14:30 2021
时间戳转为字符串: Mon Nov 29 17:14:30 2021
时间戳转为struct_time: 2021
时间戳转为本地时间: time.struct_time(tm_year=2021, tm_mon=11, tm_mday=29, tm_hour=17, tm_min=14, tm_sec=30, tm_wday=0, tm_yday=333, tm_isdst=0)
获取中国时间: 21-11-29 17:14:30
相比time的模块,datetime也是表示时间的,但是会更加直观的
import datetime as dat import time as t print('获取当前时间:',dat.datetime.now()) print('时间戳转化格式:',dat.datetime.fromtimestamp(t.time())) print('在当前时间基础上增加或者减少:',dat.datetime.now()+dat.timedelta(hours=4)) #加时间就正,减时间就负
获取当前时间: 2021-11-29 17:31:38.731938
时间戳转化格式: 2021-11-29 17:31:38.731938
在当前时间基础上增加或者减少: 2021-11-29 21:31:38.731938
json
'''dumps():对Python对象(list,tuple,dict)进行序列化
loads():对Python对象(list,tuple,dict)进行反序列化
dump():对文件进行序列化(本质上把内容写到文件里面)
load():对文件进行反序列化(本质上是读取文件里面的内容)'''
import json '''列表的序列化和反序列化''' list1=[x for x in range(5)] # 序列化 liststr=json.dumps(list1) print(liststr)
[0, 1, 2, 3, 4]
# 反序列化 strlist=json.loads(liststr) print(strlist)
[0, 1, 2, 3, 4]
'''元组的序列化和反序列化''' #元组的数据类型会改变
tuple1=(0,1,2,3,4,5)
# 序列化
tuplelist=json.dumps(tuple1)
print(tuplelist)
[0, 1, 2, 3, 4, 5]
# 反序列化
listtuple=json.loads(tuplelist)
print(listtuple)
[0, 1, 2, 3, 4, 5]
'''字典的序列化和反序列化'''
dict1={'name':'chenli','age':'23','sex':'boy'}
# 序列化
dictstr=json.dumps(dict1)
print(dictstr)
{"name": "chenli", "age": "23", "sex": "boy"} 注意看着里的引号
# 反序列化
strdict=json.loads(dictstr)
print(strdict)
{'name': 'chenli', 'age': '23', 'sex': 'boy'}
hashlib
open api的加密思路:
1、对请求参数进行排序,根据key来进行排序
2、把请求参数处理成key=value&key=value
3、对请求参数进行md5的加密(加密的数据类型必须是bytes的数据类型)
4、把加密后的sign当作请求给服务端发送过去,服务层进行比较,如果一致,可以请求
def singn():
#对请求参数进行排序,根据key来排序
dict1={'name':'chenli','age':'23','time':time.time()}
date=dict(sorted(dict1.items(),key=lambda item:item[0]))
#把请求参数处理成key=value&key=value
date=parse.urlencode(date)
#对请求参数进行md5的加密
m=hashlib.md5()
#把str转为beytes的数据类型的过程,以及进行集体的加密
m.update(date.encode('utf-8'))
return m.hexdigest()
print(singn())

浙公网安备 33010602011771号