python中库的学习
一,json:序列化与反序列化
序列化:把Python对象(字典,列表,元组)转为字符串的过程
反序列化:把字符串转为Python对象(字典,列表,元组)的过程
import json#导入json库
1,列表的序列化与反序列化
list1=[x for x in range(10)]#创建一个列表 str_list=json.dumps(list1)#将list1序列化后赋值给str_list print(str_list,type(str_list))#输出str_list和str_list的字符格式(这个时候的str_list应该是str的字符格式) list_str=json.loads(str_list)#将str_list反序列化后赋值给list_str print(list_str,type(list_str))#输出ist_str和list_str的字符格式(这个时候的str_list应该是list的字符格式)
2,元组的序列化与反序列化
tuple=("go","python","java")#创建一个元组 str_tuple=json.dumps(tuple)#对元组进行序列化 print(str_tuple,type(str_tuple))#查看序列化后的元组与字符串类型(str类型) tuple_str=json.loads(str_tuple)#反序列化操作 print(tuple_str,type(tulpe_str))#查看反序列化后的元组及其字符类型(list类型) #元组的反序列化后,它的字符格式为列表
3,字典的序列化与反序列化
dict={"name":"柏舟","age",18}#创建一个字典
str_dict=json.dumps(dict,indent=True,ensure_ascii=False)#indent:格式化的意思,可以将字典的key,value做到换行的操作,ensure_ascii:python自带的编码系统,如果你的字典中有中文
,让这个编码为False,才能保证输出的是中文.
print(str_dict,type(str_dict))#查看序列化后结果,以及它的字符串格式(str类型)
dict_str=json.loads(str_dict)#反序列化字典
print(dict_str,type(dict_str))#查看反序列化结果,以及字符串类型(dict类型)
4,文件的序列化及反序列化
list=[0,1,2,3,4,]#创建一个列表 json.dumps(open(list,"文件名称","w","encoding="utf-8"))#序列化这个文件,并创建一个"文件名称"的问价来储存"list" date=json.loads(open("文件名称")#创建一个对象,反序列化并阅读"文件名称内容"赋值给"date" print(date,type(date))#查看date内容,以及字符格式(等同于你序列化之前的格式)
二,os:处理路径
import os#导入os库
1,获取当前文件路径
print(os.path.dirname(___file___)#获取当前路径
2,获取当前文件的上一级路径
print(os.path.dirname(os.path.dirname(___file___)#查询当前文件上级路径
3,路径的拼接
"""假设当前有c:这个盘,c盘内有A和B两个文件夹,A里面有文件1,2,3,B里面有4,5,6三个文件""" #假设当前我们处在4号文件 print(os.path.dirname(___file___)#查询结果应该是/c/B """我们现在要在4号文件中显示出1号文件""" base_dir=os.path.dirname(os.path.dirname(___file___)#将4号文件的上级文件路径赋值为base_dir,4号文件的上级与1号文件的上级属于同一级 file_path=os.path.join(base_dir,A,1)#将赋值的变量与4号文件的路径聚合为一个新的路径 whit open("flie_path","r","encoding='utf-8")as f:#打开这个新的路径并为其命名为f print(f)#打开f就可以看到4号文件的内容
4,获取操作系统
print(os.name)#获取操作系统
5,查询目录是否存在
print(os.path.exists("需要查询的目录")#查询目录是否存在
6,查询文件是否是文件
print(os.path.isdir("需要查询的文件目录")#查询是否是文件
7,查询路径下所有文件
for item in os.listdir("文件路径")
print(item)
#查询路径下所有文件内容
8,执行系统命令
print(os.system("需要执行的内容")#执行系统命令
三,time:操作时间
import time#导入time库
1,获取当前时间戳
print(time.time())#获取当前时间戳
2,返回当前时间的字符串
print(time.ctime())#返回当前时间的字符串
3,时间戳转化为字符串
print(time.ctime(time.time()))#时间戳转化为字符串
4,本地化时间
print(time.localtime(time.time()))#本地化时间
5,中国人自己的时间
print(time.strftime(%y-%m-%d %H:%M:%S,time.localtime()))#中国人自己熟悉的时间"""t.sleep(X):休眠x秒
%H:%M:%S==%X
四,datetime:时间的封装
import datetime#引入datetime库
1,获取当前时间
print(datetime.datetime.now())#获取当前时间
2,对时间进行修改
print(datetime.datetime.now+datetime.timedelta("修改的时间参数"))#时间的修改
3,将时间戳转化为时间
import time import datetime #导入时间和封装库 print(datetime.datetime.fromtimetamp(time.time()))#转化时间戳为时间
五,hashlib:引用加密库
import hashlib#引入加密库
1,md5是一种加密方式,
需求:
1,针对字典进行排序
2,排序后的字典处理为key1=values&key1=values2
3,进行md5加密
import hashlib#引入加密库 from urllib import parse#引入可以把字典转化为key&values的格式的库 def dict() dict={"name":"柏舟","age":18}#创建一个字典函数 dict1=dict(sorted(dict.item key=lambda x:x[0])#对字典进行排序 dict2=parse unlencode(dict1)#将排序后的字典转化为key&value的模式 m=hashlib.md5()#将加密库赋值为m m.update(dict2.encode("utf-8")#对字典进行加密解码 print(m.hexdigest())#对加密解码后的字典进行输出 dict()
六,数据驱动
1,json文件和yaml文件
"""json文件""" { login:{"name":"柏舟","age":18} }
"""yaml文件""" tenx: tianmei: wangzhe: hero:kai
yaml文件的:后必须加空格,此种表现形式输出的是dict字符格式
"""yaml文件""" --- login: username: 无涯课堂 --- shop: shopid: 天猫店铺
yaml文件的:后必须加空格,此种表现形式是list字符格式
2,json文件的数据驱动
import json#引入json库 def x() return json.load(open("文件名称","r""encoding="utf-8"))#创建一个函数将需要添加的文件赋值给这个函数 print(x()[][])#输出想要的具体数值
3,yaml文件的数据驱动
import yaml#引入yaml库 def y() whit open("文件名称","r","encoding="utf-8")as f:打开文件目录并赋值给"f" return yaml.safe_load(f) print(y()[][])#输出需要的数值
"""对应第一种yaml文件类型"""
import yaml#导入yaml库 def x() whit open("文件名称","r",encoding="utf-8")as f:#创建一个函数将文件阅读并赋值 return list(yaml.safe_load_all(f))#返回f以列表的形式到函数 print(x()[][])#输出需要的数据
"""对应第二种yaml文件类型"""
浙公网安备 33010602011771号