python学习(8)库

一、库的管理:

(自己创建的模块名称(也就是python文件的名称)不能和库的名称一样)

 

1、标准库:安装Python解释器后,直接自带的

os,sys,json,csv,time,datetime,hashlib

2、第三方的库:全球顶级程序员(有专门的网站可以下载)

安装方式:

1、在线安装 (在控制台安装,如果超时,重新执行,没有更好解决办法。这三个命令要知道)

pip3 install 库的名称 (安装)

pip3 uninstall 库的名称 (卸载)

pip3 install -U 库的名称 (升级)

2、离线安装

https://pypi.org/project/

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

 

posted @ 2022-03-31 16:49  jia---  阅读(131)  评论(0)    收藏  举报