pycharm(4)
Open API的加密
第一步、请求参数(字典的数据格式)进行排序
第二步、将他转换为kry=value&key=value的格式
第三步、进行md5的加密
import hashlib from urllib import parse # urllib:做网络爬虫 import time def sign(): dict1={'name':'xl','age':18,'time':time.time()} # 对请求参数进行ascll排序 date=dict(sorted(dict1.items(),key=lambda itme:itme[0])) # 吧请求参数处理成key=value&key=value的格式 date=parse.urlencode(date) # 进行md5的加密 m=hashlib.md5() # 把字符串的数据格式处理成bytes的数据类型 m.update(date.encode('utf-8')) return m.hexdigest() print(sign())
库的管理
1、标准库:安装python解释器后,直接带的os,sys,json,csv,time,datetime,hashlib
2、第三方的库:全球顶尖的程序员编写的库(有专门的网站可以下载:https://pypi.org/project/)
安装方式:
1)、在线安装
pip3 install 库的名称 (安装库的操作)
pip3 uninstall 库的名称 (删除库的操作)
pip3 install -u 库的名称 (升级库的操作)
2)、离线安装
3)、常用的第三方的库
selsnium:UI测试框架
pip3 install selsnium
Appium:移动UI测试框架
requests:接口测试框架
pip3 install requests
pymysql:操作MySQL
pip3 install pymysql
xlrd:操作Excl文件
pip3 install xlrd
Django:全站WEB框架
flask:轻量级WEB框架
fast:异步WEB框架
Pytest:单元测试框架
pip3 install pytest
3、自定义的库:就是我们自己编写的python文件
os实战
os:针对路径的处理
os.getced:获取当前路径
# 获取当前路径:os.getcwd import os print('当当前路径',os.getcwd())
获取目录下的所有文件和文件夹
# 获取当前目录下的所有文件和文件夹 import os for loo in os.listdir(path=os.getcwd()): print(loo)
获取文件和目录信息
# 获取文件和目录信息 import os print('获取文件和目录信息',os.stat('c:'))
获取当前路径(另一种方式)
# 获取当前路径 import os print('获取当前路径',os.path.dirname(__file__))
获取当前路径的上一级路径
# 获取当前路径的上一级路径
import os
print(os.path.dirname(os.path.dirname(__file__)))
获取操作系统:name
# 获取操作系统 import os print('获取操作系统',os.name)
获取环境变量:environ
# 获取环境变量 import os print('获取环境变量',os.environ)
判断文件是否存在
#判断文件是否存在 import os base_dir=os.path.dirname(os.path.dirname(__file__)) loo=(os.path.join(base_dir,'data','name','login.txt')) print('判断文件是否存在',os.path.exists(loo))
time实战
获取时间戳
#获取时间戳 import time print('获取时间戳',time.time())
当前时间字符串格式
#当前时间字符串格式 import time print('当前时间字符串格式',time.ctime())
休眠(以秒为单位)
#休眠(以秒为单位) import time time.sleep(3) print('hello!')
时间戳转为本地时间
# 时间戳转为本地时间 import time localTime=time.localtime(time.time()) print('年:{0},月:{1},日:{2}'.format( localTime.tm_year,localTime.tm_mon,localTime.tm_mday )) print('中国人的方式',time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())) print(time.strftime('%Y-%m-%d %x',time.localtime()))
datetime实战
相比于time模块,datetime也是表示时间的,但是会更加直观
查看当前时间
import datetime # datetime是库 print('当前时间',datetime.datetime.now())
在当前时间的基础上增加或者减少天数
import datetime # 在当前时间的基础上增加或者减少多少天 print(datetime.datetime.now()+datetime.timedelta(days=10))
json实战
序列化和反序列化
序列化:把内存里的数据类型转为字符串的数据格式,使能够存储到硬盘或者通过网络传输到远程,因为硬盘或者网络传输是时只接受bytes的数据类型。简单的说就是把Python的数据类型(字典,元素,列表)转为str的数据类型过程。
反序列化:就是str的数据类型转换为Python对象的过程
json.dumps():列表的序列化
# 列表的序列化 import json list1=['go','python','java'] list_str=json.dumps(list1) print(list_str)
json.loads():列表的反序列化
# 列表的序列化 import json list1=['go','python','java'] list_str=json.dumps(list1) print(list_str) # 列表的反序列化 str_list=json.loads(list_str) print(str_list)
元组的序列化和反序列化和列表的相同
字典的序列化和反序列化和列表的相同
注意:
indent=Ture:能让输出的结果结构化
ensure_ascli=Falsse:能够优化中文
文件的序列化:把目标内容写到文件中
# 序列化,将目标内容写到文件中 import json dict1={'name':'xl','zge':18,'datas':[{'math':90,'english':80},{'yuwen':100,'wuli':100}]} # 注意此时使用的是dump,并不是dumps json.dump(dict1,open('data.txt','w',encoding='utf-8'),ensure_ascii=False)
文件的反序列化:从文件里面读取文件的内容
# 反序列化:从文件里面读取文件的内容 # 注意:此时使用的是load并不是loads print(json.load(open('data.txt','r')))