分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

常用模块二---time--random--collections--json--pickle--shelve

发布时间:2023-09-06 01:10责任编辑:彭小芳关键词:jsjson

常用模块二

================= collections 模块==================
 ========= namedtuple ??可以命名的元组 ============from collections import namedtuple Point=namedtuple(‘Point‘,[‘x‘,‘y‘]) p=Point(1,2)circle=namedtuple(‘Circle‘,[‘x‘,‘y‘,‘r‘])c=circle(1,2,1)print(p.x)print(p.y) print(c.x) print(c.y) print(c.r) ======== 队列 先进先出 --双向队列 deque============ 处理任务--处理一个少一个from collections import deque# q=deque([1,2,3])# q.append(4)# q.appendleft(5)# q.pop()# q.popleft()# print(q) # ?deque([1, 2, 3])# q.extendleft([1,2]) # 没有entend ======== 有序字典 OrderedDict============from collections import OrderedDict# dic=dict([(‘a‘,2),(‘b‘,3),(‘c‘,6)])# print(dic) ??# {‘a‘: 2, ‘b‘: 3, ‘c‘: 6}# dic=OrderedDict([(‘a‘,2),(‘b‘,3),(‘c‘,6)])# print(dic) ?# ?OrderedDict([(‘a‘, 2), (‘b‘, 3), (‘c‘, 6)])# ======== 有默认值得字典 defaultdict============# from collections import defaultdict## dic=defaultdict(list) ??#里面必须是可以调用的函数函数# dic[‘k‘].append(123)# print(dic)# dic=defaultdict(lambda:‘N/A‘) # 括号里面是一个默认的值### ======== counter 返回一个计数字典 ?============

 =================
        时间 time() 模块
==================

1 时间戳 ----- 1970 1 1 00 00 00 ---- 标识唯一的时间 用来计算2 字符串时间 ----- time.strftime(‘%Y-%m-%d %H:%M:%S‘,默认是 time.localtime())3 格式化时间 ?-----time.localtime() time.gtime()# import time# t1=time.time() ?????????????????????????????????????#=============时间戳=======计算器应用============## t2=time.localtime()  ?# 北京时间 ?东区 ?本时区的时间 ???#===========结构化时间=========操作========# t3=time.gmtime()  ????# 标准时间 ?晚8个小时 ???????????#===========结构化时间=========操作========### t=time.mktime(time.localtime(time.time())) ?# 结构化--->> 时间戳# t=time.strftime(‘%Y-%m-%d‘,time.localtime()) ?#结构化时间--->> 字符串时间 ??#==========字符串时间=======给人看========# tt=time.strptime(‘2018-08-23‘,‘%Y-%m-%d‘) ????# 字符串时间-->> 结构化时间 ??#==========字符串时间=======给人看=========## t4=time.ctime(time.time())# t5=time.asctime(time.localtime())## time.sleep(0.1) ?# ====I/O阻塞 不会占用CPU# print(t2.tm_year,t2.tm_mon,t2.tm_mday,t2.tm_hour,t2.tm_min,t2.tm_sec,sep=‘:‘)
例子1 ?计算 几天后的时间# time_str=‘2015-09-23‘# def add_days(my_time,num):# ????temp_time=time.strptime(my_time,‘%Y-%m-%d‘)# ????temp_time=time.mktime(temp_time)# ????actual_time=temp_time+3*24*3600*num# ????new_time=time.localtime(actual_time)# ????new_time=time.strftime(‘%Y-%m-%d‘,new_time)# ????return new_time# print(add_days(time_str,5))
例子 2 查看一个时间过去了多久# import time# old_time_str1=‘2015-09-10 08:30:00‘# struct_time=time.strptime(old_time_str1,‘%Y-%m-%d %H:%M:%S‘)# true_time=time.mktime(struct_time)# time_now=time.time()# dif_time=time_now-true_time-8*3600# struct_time=time.localtime(dif_time)# print(‘过去了%d年%d月%d天%d小时%d分钟%d秒‘%(struct_time.tm_year-1970,struct_time.tm_mon-1,struct_time.tm_mday-1,struct_time.tm_hour,struct_time.tm_min,struct_time.tm_sec))# str_time=time.strftime(‘%d %H %M %S‘,struct_time)# print(str_time)

  =========================
          随机数 ?random() 模块
  ==========================

# print(random.random()) ???????# ?(0,1)的 ?float# print(random.randint(1,5)) ???# ?[1,5]的 int# print(random.uniform(1,5)) ???# ?[1,5]的 float# print(random.randrange(1,5)) ?# ??[1,5)的 int# print(random.choice(‘abcd‘)) ?# ?可迭代对象 随机选择一个# print(random.sample(‘abcd‘,3))#  可迭代对象 随机选择多个 ?返回值为列表# li=[1,2,3,4]# random.shuffle(li) ???# 随机改变 ?可变,可以索引的 数据结构的顺序
例子 验证码# import random# check=‘‘# for i in range(8):# ????m=chr(random.choice(range(ord(‘A‘),ord(‘Z‘))))# ????n=chr(random.choice(range(ord(‘a‘),ord(‘z‘))))# ????o=random.randint(0,9)# ????string=random.choice([m,n,o])# ????check+=str(string)# print(check)

================
      序列化模块
================

将原本的字典,列表等内容 转换为一个字符串的过程 叫做 ?=== 序列化存文件网络传输

=========== ?序列化的目的 ===========用某种存储形式 使自定义 对象持久化将对象从一个地方传递到另一个地方程序更具有维护性===json==提供了四个功能 dumps dump load loads dumps ?loads ?????网络传输 ?处理字符串# import json# d={‘k‘:‘v‘,‘k2‘:[1,2,3]}# print(d,type(d)) ?#{‘k‘: ‘v‘, ‘k2‘: [1, 2, 3]} <class ‘dict‘>## sd=json.dumps(d)# print(sd,type(sd)) # ?序列化 {"k": "v", "k2": [1, 2, 3]} <class ‘str‘>### s=‘{"k":"v","k2":[1,2,3]}‘## d=json.loads(s) ?# ??反序列化# print(d,type(d)) # ?{‘k‘: ‘v‘, ‘k2‘: [1, 2, 3]} <class ‘dict‘># load ?dump ?? 文件操作 ?数据持久化 ????一次性的import jsond={‘k‘:‘v‘,‘k2‘:[1,2,3]}f=open(‘json_file‘,‘w‘)json.dump(d,f,ensure_ascii=True) ????#f.close()f=open(‘json_file‘)ret=json.load(f)f.close()print(ret)print(‘中国‘.encode(‘gbk‘)) ??# b‘\xd6\xd0\xb9\xfa‘print(ascii(‘中国‘)) ?????????#‘\u4e2d\u56fd‘ unicode===pickle===
# json (只能处理 字典 列表 元组 等基本的数据类型 ) 用于字符串 和 python数据类型间进行转换# 所有编程语言通用# pickle===用于自定义的 数据类型的序列化 (游戏 人物数据)# 只有python可以使用# # 序列化一些自定义的数据类型

===shelve=== ?简单的数据类型 --- 用于修改# import shelve## f=shelve.open(‘shelve_file‘,writeback=True) ????#{‘int‘: 5, ‘str‘: ‘a‘}# # f=shelve.open(‘shelve_file‘) ?????????????????#{‘int‘: 1, ‘str‘: ‘a‘}# f[‘key‘]={‘int‘:1,‘str‘:‘a‘}# f[‘key‘][‘int‘]=5# f.close()#
# f1=shelve.open(‘shelve_file‘) ???# ?内存消耗# ret=f1[‘key‘]# f1.close()# print(ret)

常用模块二---time--random--collections--json--pickle--shelve

原文地址:http://www.cnblogs.com/big-handsome-guy/p/7514228.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved