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的格式的库
import time def dict() dict={"name":"柏舟","age":18,"time":"time.time()"}#创建一个字典函数 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()
浙公网安备 33010602011771号