库、时间、hashlib、序列化与Git

一、库的管理

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

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

2、第三方的库

全球顶级程序员(有专门的网站可以下载)

安装方式

2.1、在线安装

      安装——pip3 install 库的名称

      卸载——pip3 uninstall 库的名称

      升级——pip3 install -U 库的名称

2.3、离线安装

安装网站:https://pypi.org/project/

 

 

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设置名称需要加上后缀

使用库的时候需要导入它:import os

1、获取当前路径

当前路径:cwd

import os
# 获取当前路径
print(os.getcwd())

 

2、获取当前目录下的所有文件和文件夹

listdir:列表的方式

for item in os.listdir(path=os.getcwd()):
    print(item)

 

3、获取文件和目录信息(在当前路径的上级路径中输出)

stat:统计

print(os.stat("D:\学习资料\Python\CODE"))

 

4、获取当前路径

file:文件,前后都有两个下划线_

print(os.path.dirname(__file__))

 

5、获取当前路径的上一级路径 

print(os.path.dirname(os.path.dirname(__file__)))

 

 

6、创建新的文件,填写信息后读出输入的信息

base_dir:基础路径      filePath:文件路径

import os
base_dir=os.path.dirname(__file__)
filePath=os.path.join(base_dir,"data","login.txt")
with open(filePath,"r",encoding="utf-8") as f:
    print(f.read())

 

 

7、获取操作系统

path:路径

import os
# 获取操作系统
print(os.name)
# 环境变量
print(os.environ)
# 判断文件是否存在(首先需要输出之前的文件信息)
base_dir=os.path.dirname(__file__)
filePath=os.path.join(base_dir,"data","login.txt")
print(os.path.exists(filePath))

 

三、time实战

time模块提供了各种与时间有关系的库

1、获取时间戳

import time
print(time.time())

2、获取当前时间字符串的格式

import time
print(time.ctime())

3、休眠N秒后再输出:sleep,秒为单位

import time
time.sleep(N秒)
print("需要输出的内容")

4、时间戳转为本地时间

localTime:当地时间

import  time
localTime=time.localtime(time.time())
print('年:{0},月:{1},日:{2}'.format(localTime.tm_year,
localTime.tm_mon,localTime.tm_yday))

5、中国常用时间格式

strftime:取得当前的时间

# 中国时间显示格式
import time
print(time.strftime("%T-%M-%D %H-%M-%S",time.localtime()))
print(time.strftime("%T-%M-%D %X",time.localtime()))
print(time.strftime("%T-%M-%D %x",time.localtime()))

 

 

四、datatime:日期时间

相比time的模块,datetime也是表示时间的,但是更加直观

1、获取当前时间

# 获取当前时间
import datetime
print(datetime.datetime.now())

 

2、在当前时间基础上增加或者减少多久的天数或者小时

 时间增量:timedelta

import datetime
print(datetime.datetime.now()+datetime.timedelta(days=10))

3、在当前时间基础上增加或者减少多久的天数或者小时

# 在当前时间基础上增加或者减少多久的天数或者小时
import datetime
当前天数增加和减少10天
print(datetime.datetime.now()+datetime.timedelta(days=10))
print(datetime.datetime.now()+datetime.timedelta(days=-10))
当前时间增加10小时
print(datetime.datetime.now()+datetime.timedelta(hours=10))
当前时间减少5分钟
print(datetime.datetime.now()+datetime.timedelta(minutes=-5))

 

4、时间戳转换格式——给的是时间戳,需要处理成当前时间

fromtimestamp:从时间戳

# 时间戳转换格式,给的是时间戳,需要处理成当前时间
import datetime
import time
print(datetime.datetime.fromtimestamp(time.time()))

 

 

五、hashlib

open Api开放平台

1、对请求参数(字典)进行排序

2、处理成key=value&key=value

3、进行md5的加密,生成密钥

hashlib里面主要会涉及到md5的加密算法的

urllib:是Python中用来处理URL的工具包

parse:解析

# hashlib解密
import hashlib
from urllib import parse
import time
# 定义标记/符号
def sign():
   dict1={'name':'wp','age':34,'sex':'girl','time':time.time()}
# 对请求的参数进行ascill码排序
   data=dict(sorted(dict1.items(),key=lambda item:item[0]))
# 把请求参数处理成key=value&key1=value1&key2=value2
   data=parse.urlencode(data)
# 进行md5的加密
   m=hashlib.md5()
# 要把字符串的数据处理成bytes数据类型
   m.update(data.encode('utf-8'))
   return m.hexdigest()
print(sign())

 

 

六、序列化和反序列化:json

1、序列化

把内存里的数据类型转为字符串的数据类型,使能够存储到硬盘或通过网络传输到远程,因为硬盘或者网络传输时只接受bytes的数据类型。简单的说就是把Python的数据类型(字典,元组,列表)转为str的数据类型过程

2、反序列化

就是str的数据类型转为Python对象的过程。

3、列表的序列化与反序列化

内容不变,但是类型发生改变

# 列表的序列化与反序列化
import json
list1=["go","java","python"]
# 列表转字符串--序列化关键字:dumps
list_str=json.dumps(list1)
print(list_str)
print(type(list_str))
# 字符串转列表--反序列化关键字:loads
str_list=json.loads(list_str)
print(str_list)
print(type(str_list))

 

 

4、元组的序列化与反序列化

# 元组的序列化与反序列化
import json
tuple1=("go","python")
tuple_str=json.dumps(tuple1)
print(tuple_str)

str_tuple=json.loads(tuple_str)
print(type(str_tuple))
print(str_tuple)

 

 

5、字典的序列化与反序列化

# 字典的序列化与反序列化
import json
dict1={"name":"wp","age":22,"sex":"girl"}

dict_str=json.dumps(dict1)
print(dict_str)

str_dict=json.loads(dict_str)
print(type(str_dict))
print(str_dict)

 

 

 

6、针对字典处理

indent=True:结构化输出

ensure_ascii=False:处理中文

import json
dict1={"name":"wp","age":22,"sex":"girl","datas":[
    {"math":95,"english":84,},
    {"wuli":84,"listory":96}]}
print(json.dumps(dict1,indent=True,ensure_ascii=False))

 

 

7、针对文件的序列化与反序列化

序列化:把目标写到文件中。dump和load是仅针对文件的序列化与反序列化

# 针对文件的序列化和反序列化
import json
dict1={"name":"王潘","age":22,"sex":"girl","datas":[
{"math":95,"english":84,},
{"wuli":84,"listory":96}]}

# encoding="utf-8":针对字典中的文字出现乱码
json.dump(dict1,open(
"data.txt","w",encoding="utf-8"),ensure_ascii=False)

 

 

8、反序列化:从文件里面读取文件的内容

# 反序列化:从文件里面读取文件的内容
print(json.load(open("data.txt","r",encoding="utf-8")))

 

 

 

七、Git创建库保存数据

1、下载在环境变量path中添加

2、在控制台中进入D:\学习资料\Python\CODE\testDev中

3、输入git init——创建仓库

4、之后再输入git add .——添加所有的文件

5、配置提交邮箱的账户和name

git config --global user.email "QQ邮箱号" git config --global user.name "wp"

git commit -m "提交所有的文件"

 

 

修改过的内容会显示在其中

 

posted @ 2022-03-31 21:07  棠小梨  阅读(41)  评论(0编辑  收藏  举报