json
所有的编程语言都能够识别的数据格式叫做json,是字符串
能够通过json序列化成字符串有如下类型: (int float bool str list tuple dict None)
json用法
(1) dumps和loads是一对,可以序列化成字符串
dic = {"name":"高云峰","age":81,"classroom":"python31","family":["老爸","老妈","老伴"]}
ensure_ascii=False 显示中文 sort_keys=True 对字典的键进行排序
res = json.dumps(dic,ensure_ascii=False,sort_keys=True)
print(res , type(res))
# loads反序列化原来的数据类型
dic = json.loads(res)
print(dic,type(dic))
(2) dump 和 load 是一对,针对于文件,把数据序列化后存储文件
dic = {"name":"高云峰","age":81,"classroom":"python31","family":["老爸","老妈","老伴"]}
with open("ceshi0728.json",mode="w",encoding="utf-8") as fp:
json.dump(dic,fp,ensure_ascii=False)
with open("ceshi0728.json",mode="r",encoding="utf-8") as fp:
dic = json.load(fp)
print(dic, type(dic))
json 和 pickle 两个模块的区别:
(1)json序列化之后的数据类型是str,所有编程语言都识别,
但是仅限于(int float bool)(str list tuple dict None)
json不能连续load,只能一次性拿出所有数据
(2)pickle序列化之后的数据类型是bytes,
所有数据类型都可转化,但仅限于python之间的存储传输.
pickle可以连续load,多套数据放到同一个文件中
json使用的广泛性比pickle更强.
json 用在不同编程语言的数据交流中
pickle 用于数据的存储
时间模块 time
time() 获取本地时间戳
localtime() 获取本地时间元组 (参数是时间戳,默认当前)
mktime() 通过时间元组获取时间戳 (参数是时间元组)
ctime() 获取本地时间字符串(参数是时间戳,默认当前)
asctime() 通过时间元组获取时间字符串(参数是时间元组) 不能自动识别周几
# 改造办法
ttp = (2020,7,28,10,54,30,0,0,0)
res = time.mktime(ttp)
str_time = time.ctime(res)
print(str_time)
sleep() 程序睡眠等待
strftime() 格式化时间字符串(格式化字符串,时间元祖)
# 默认按照当前时间做格式化
res = time.strftime("%Y-%m-%d %H:%M:%S")
print(res)
# 指定时间元组,对时间字符串格式化
strftime如果在windows当中出现中文,直接报错,不能解析,linux 可以支持
ttp = (2000,10,1,12,12,12,0,0,0)
res = time.strftime("%Y-%m-%d %H:%M:%S" , ttp)
print(res)
strptime() 将时间字符串通过指定格式提取到时间元组中(时间字符串,格式化字符串)
strftime => 把时间元组 -> 时间字符串
strptime => 把时间字符串 -> 时间元组
perf_counter() 用于计算程序运行的时间
# 记录开始时间
startime = time.perf_counter()
startime = time.time()
# 记录结束时间
endtime = time.perf_counter()
endtime = time.time()
%Y 年 year
%m 月 month
%d 日 day
%H 时 hour
%M 分 minute
%S 秒 second
压缩模块 zipfile
# 1.压缩文件
# (1) 创建压缩包
zf = zipfile.ZipFile("1424.zip","w",zipfile.ZIP_DEFLATED)
# (2) 把文件写入到压缩包中
# write(路径,别名)
zf.write("/bin/cp","cp")
zf.write("/bin/chmod","chmod")
# 可以临时创建一个文件夹tmp在压缩包中
zf.write("/bin/df","/tmp/df")
# (3) 关闭压缩包
zf.close()
# 2.解压文件
# (1)打开压缩包
zf = zipfile.ZipFile("1424.zip","r")
# (2)解压文件
# 解压单个文件
zf.extract("cp","ceshi1424_2")
# 解压所有文件
# zf.extractall("ceshi1424")
# (3) 关闭压缩包
zf.close()
# 3.追加文件 (支持with语法)
with zipfile.ZipFile("1424.zip","a",zipfile.ZIP_DEFLATED) as zf:
zf.write("/bin/dir","dir")
# 4.查看压缩包
with zipfile.ZipFile("1424.zip","r",zipfile.ZIP_DEFLATED) as zf:
lst = zf.namelist()
print(lst)