python学习(8)库
一、库的管理:
(自己创建的模块名称(也就是python文件的名称)不能和库的名称一样)
1、标准库:安装Python解释器后,直接自带的
os,sys,json,csv,time,datetime,hashlib
2、第三方的库:全球顶级程序员(有专门的网站可以下载)
安装方式:
1、在线安装 (在控制台安装,如果超时,重新执行,没有更好解决办法。这三个命令要知道)
pip3 install 库的名称 (安装)
pip3 uninstall 库的名称 (卸载)
pip3 install -U 库的名称 (升级)
2、离线安装
3、常用的第三方的库(安装方式:在命令行窗口中输入以下命令)
selenium:UI测试框架 (pip3 install selenium)
Appium:移动UI测试框架
requests:接口测试框架 (pip3 install requests)
pymysql:操作MySQL (pip3 install pymysql)
xlrd:操作Excel文件 (pip3 install xlrd)
Django:全栈WEB框架
flask:轻量级WEB框架
fast:异步WEB框架
Pytest:单元测试框架 (pip3 install pytest)
3、自定义的库:自己编写的python
二、 os实战
os模块提供了不少与操作系统相关联的函数。
(os主要学会针对路径的处理)
用库之前要先导入库:import os
获取当前路径:
os.getcwd()

获取目录下的所有文件和文件夹:
os.listdir(path=当前路径)

获取文件和目录信息:
os.stat("本地路径")

获取当前路径:(一般用这种方式)
os.path.dirname(__file__)
获取当前路径的上一级路径:
os.path.dirname(os.path.dirname(__file__))

(用获取当前路径的命令,用两次。可以理解成当前路径的路径,也就是当前路径的上一层路径)
√拼接路径:
(几个路径拼接,用这个方法。如果有必要,先回到上一级:先获取上一级目录,然后定义成一个变量,再拼接)
os.path.join(路径,路径,文件)
需求:在当前文件”os实战“中,读取login.txt文件内容。

思路:要读取login.txt这个文件内容,首先要从当前路径先去到testDev这个路径下,再进入data路径下,然后取读取login.txt文件。
①当前在os实战中,首先获取当前路径的上一层路径(当前在基础学习中,上一级路径就是testDev),定义为base_dir。
②拼接路径(从定义的base_dir 到“data”下 再到log.txt),在第一步中获取了上一级路径,第二步中拼接这些路径,这就是文件的路径。
③with open 读取文件内容。
获取操作系统
os.name
获取环境变量
os.environ
os.path.exists(文件/文件路径) (返回True 或False)

三、time实战
time模块提供了各种与时间有关系的库
用库之前要先导入库:import time
√获取时间戳
time.time()

(每个时间戳都以自从 1970 年 1 月 1 日午夜(历元)经过了多长时间来表示。)
当前时间字符串格式
time.ctime()

√休眠,以秒为单位
time.sleep(数字)

(表示休眠三秒,输出"hello world")
获取当前时间(元组结构)
time.localtime(time.time())
![]()
获取当前的年(月、日、时、分)
time.localtime(time.time()).tm_year


√中国时间格式:
time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())

四、datetime实战
相比time模块,datetime也是表示时间的,但是会更加直观的。
用库之前先导入库 import datetime
获取当前时间
datetime.datetime.now()

当前时间基础上添加时间(天、小时)
datetime.datetime.now()+datetime.timedelta( = )

时间戳转换格式
(给的是时间戳,需要处理成当前时间)

五、hashlib实战
hashlib⾥⾯主要会涉及到md5的加密算法
openAPI(开放平台)
加密三步:(必须要会,工作中遇到加密问题时,拿出来改造)
1、对请求参数(字典类型)进行排序
2、排序成key=value &key1=value1.... 格式(以key排序)
3、进行md5加密


六、json实战(背也要记下来)
序列化和反序列化:主要是做接口测试的时候用。
序列化:
把内存⾥的数据类型转为字符串的数据类型,使能够存储到硬盘或通过⽹络传输到远程,因为硬盘或者⽹络传输时只接受bytes的数据类型。
简单的说就是把Python的数据类型(字典,元组,列表)转为str的数据类型过程。
反序列化:
就是str的数据类型转为Python对象的过程。
用前先导入库 import json
一、列表的序列化与反序列化:
序列化: json.dumps(列表) (list→str)
反序列化: json.loads(字符串) (str→list)
(序列化和反序列化后不要看样子,看类型确定)

二、元组的序列化与反序列化:
序列化: json.dumps(元组) (tuple →str)
反序列化: json.loads(字符串) (str →list)
(元组类型序列化后变成字符串,反序列化处理后,变成列表)

序列化: json.dumps(字典) (dict → str)
反序列化: json.loads(字符串) (str → dict)

例:复杂嵌套的字典类型的序列化处理:
indent=True
ensure ascill=False (用在json。因为json.dumps序列化时对中文默认使用的ascii编码.想输出真正的中文需要指定ensure ascill=False )

四、针对文件的序列化和反序列化
(注意:文件序列化是dump,反序列化是load。对象是dumps和loads。)
工作中我们经常会用到序列化和反序列化,主要用于进行文件的读取和保存,能够更好的保存我们项目中所进行使用的东西:
在日常生活中我们有许多文件都是通过二进制的方式进行存储,但是二进制的文件的制作需要首先进行序列化:
序列化的目的:
1、以某种存储形式使自定义对象持久化;2、将对象从一个地方传递到另一个地方;3、时程序更具维护性。
文件序列化:就是把目标内容写到文件中
json.dump(目标内容,写入操作文件,编码处理)

文件反序列化:就是从文件里面读取文件的内容
json.load(读取文件操作)

编码:utf-8 gbk gb2312


浙公网安备 33010602011771号