os是针对路径的处理 是一个库
import os # 获取当前路径 print(os.getcwd())
# 获取目录下的所有文件和文件夹 for item in os.listdir(path=os.getcwd()): print(item)
# 获取文件和目录的详细信息 print(os.stat('c:'))
# 获取当前路径 print(os.path.dirname(__file__))
# 获取当前路径的上一个路径 print(os.path.dirname(os.path.dirname(__file__)))
# 基础路径 base_dir=os.path.dirname(os.path.dirname(os.path.dirname(__file__))) # 获取这个login.txt文件的路径 filePath=os.path.join(base_dir,'data','login.txt') print(base_dir) print(filePath)
# 获取了一个filePath(一个文件的路径)打开读取里面的内容 with open(filePath,'r',encoding='utf-8')as f: print(f.read())
base_dir=os.path.dirname(os.path.dirname(os.path.dirname(__file__))) filePath=os.path.join(base_dir,'data','login.txt') # 判断这个文件是否存在 print(os.path.exists(filePath))
# 获取操作系统 print(os.name) # 获取环境变量 print(os.environ)
time模块提供了各种与时间有关系的库
import time # 获取时间戳 print(time.time()) # 获取当前字符串格式的时间 print(time.ctime()) # 休眠5秒输出hello time.sleep(5) print('hello')
# 获取当前系统时间并且格式话输出 localTime=time.localtime(time.time()) print('年:{0},月:{1},日:{2}'.format(localTime.tm_year,localTime.tm_mon,localTime.tm_mday)) # 中国人喜欢的2种输出方式 print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())) print(time.strftime('%Y-%m-%d %x',time.localtime()))
序列化:把内存里的数据类型转为字符串的数据类型,使能够存储到硬盘或通过网络传输到远程,因为硬盘或着网络传输时只接受bytes的数据类型。简单的说就是把Python的数据类型(字典,元组,列表)转为str的数据类型过程。
而反序列化,就是str的数据类型转为Python对象的过程
import json # 列表的序列化与反序列化 list1=['java','Python','Go'] list_str=json.dumps(list1) print(list_str) print(type(list_str)) str_list=json.loads(list_str) print(str_list) print(type(str_list))
# 元组的序列化与反序列化 元组的反序列化输出的是列表格式 tuple1=('Go','Python') tuple_str=json.dumps(tuple1) print(tuple_str) str_tuple=json.loads(tuple_str) print(str_tuple)
# 字典的序列化与反序列化 dict1={'name':'xiaoming','age':20} dict_str=json.dumps(dict1) print(dict_str) print(type(dict_str)) str_dict=json.loads(dict_str) print(str_dict) print(type(str_dict))
dict1={'name':'小明','age':18,'datas':[{'math':90,'englist':100,'yvwen':100,'wuli':109}]} # 针对以上的dict1里面的数据进行格式化输出 # indent=True:结构化输出 # ensure_ascii=False:处理中文 print(json.dumps(dict1,indent=True,ensure_ascii=False))
针对文件的序列化:是把目标写到文件中--针对文件的序列化是针对对象的序列化
json.dump(dict1,open('login.txt','w',encoding='utf-8'),ensure_ascii=False)
#反序列化是从文件里读取文件的内容 print(json.load(open('data.txt','r',encoding='utf-8')))
相比time的模块,dateti也是表示时间的,但是会更加直观的
import datetime import time # 获取当前的时间 print(datetime.datetime.now()) # 在当前的基础上增加10天个不能应用与年 print(datetime.datetime.now()+datetime.timedelta(days=10)) # 时间戳转换格式 print(datetime.datetime.fromtimestamp(time.time()))
openAPI 开放平台 对他进行加密 它的请求参数是字典形式
1、针对请求参数进行排序
2、key=value&value
3、进行md5加密
做网络爬虫:urllib
import hashlib import time from urllib import parse def sign(): dict1={'name':'wuya','age':18,'work':'testDev','time':time.time()} # 对请求参数进行ascill码排序 data=dict(sorted(dict1.items(),key=lambda item:item[0])) # 把请求参数处理成key=value&key1=value&key2=value2 data=parse.urlencode(data) # 进行md5的加密 m=hashlib.md5() # 要把字符串的数据处理成bytes数据类型 m.update(data.encode('utf-8')) return m.hexdigest() print(sign())
1、标准库:安装Python解释器后,直接自带
2、第三方的库:全球顶级的程序员(有专门的网站可以下载)
安装方式:
1、在线安装
pip3 install 库的名称
pip3 uninstall 库的名称
pip3 install -u 库的名称
2、离线安装
3、常用的第三方 的库
selenium:UI测试框架
pip3 install selenium
Appium:移动UI测试框架
requests:接口测试框架
pip3 install requests
pymsql:操作MySQL
pip3 install pymysql
xlrd:操作系统Excel文件
pip3 install xlrd
Django:全栈WEB框架
flask:轻量级WEB框架
3、自定义的库:自己编写的Python文件
fast:异步WEB框架
pytest:单元测试框架
pip3 install pytest