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文件类型"""

 

posted @ 2022-06-21 18:21  柏舟0129  阅读(54)  评论(0)    收藏  举报