python---内置模块(2)
1、时间和日期相关
—借助操作系统来操作时间
—time
—datetime
—calendar
time模块
—常见方法
—‘asctime’, ‘ctime’,‘gmtime’, ‘localtime’, ‘mktime’, ‘sleep’, ‘strftime’, ‘strptime’,‘time’
import time
# time.asctime([tuple])
# 传入一个各个时间参数组成的元组或者不传递参数
# 把时间以字符串格式展示,不传递参数时,返回当前
print(time.asctime())# 打印当前时间
h = time.localtime() # 以元组形式,返回当前时间
print(time.asctime(h)) #打印当前时间
# time.ctime([seconds])
# 传入秒数或者不传递参数,秒数以格林威治时间(UTC)为参考
# 时区不同,返回值有所差异
# 把时间以字符串格式展示
print(time.time())# 打印当前时间
print(time.time(0))# 打印本地所在时区在1970年1月1日00:00:00对应的时间
# time.gmtime([seconds])
# 传入秒数或者不传递参数
# 返回一个时间对象(元组对象)(年, 月, 日, 时, 分, 秒,星期,时间进制12/24,是否为夏令时)
# 以格林威治时间(UTC)为参考
print(time.gmtime())# 打印当前时间对应的元组
print(time.gmtime(0))# 打印1970年1月1日00:00:00对应的时间元组
# time.localtime([seconds])
# 传入秒数或者不传递参数
# 返回一个时间对象(元组对象)(年, 月, 日, 时, 分, 秒,星期,时间进制12/24,是否为夏令时)
# 以本地时区为参考
print(time.gmtime())# 打印当前本地时间对应的元组
print(time.gmtime(0))# 打印1970年1月1日00:00:00本地时间对应的元组
# time.mktime(tuple)
# 传入一个时间元组,或者不传递参数
# 将时间对象(元组)转换为秒数
print(time.mktime()) # 打印当前时间对应的秒数
print(time.mktime((2021,1,24,20,36,00,6,24,0)))# 打印对应时间的秒数
# time.sleep([seconds])
# 传递一个秒数
# 让当前线程,休眠
time.sleep(3) # 当前进程休眠3秒
# time.strftime()
# 将时间对象格式化为需要的任意格式字符串
# %Y 年 # %m 月 # %d 日
# %H 时 # %M 分 # %S 秒
# %z 时区 # %p 上/下午
time.strftime("2021/1/24 20:54:0".format("%Y-%m-%d %H:%M:%S"))# 转换时间字符串的格式
# time.strptime(时间字符串,对应的格式)
# 时间字符串
# 将字符串转换为时间对象(以元组形式返回)
print(time.strptime("2021 1 24 21:00:00", "%Y %m %d %H:%M:%S"))#
# time.time()
# 时间戳
# 返回当前时间相对于1970年1月1日00:00:00的秒数(小数)
print(time.time())# 打印当前时间对应的秒数
datetime模块
—可以看成time模块的补充
—常见的方法
—date’,‘datetime’,‘time’,‘timezone’
import datetime
# datetime.date(year,month,day)
# 以元组形式返回对应的日期
print(datetime.date(2021, 1, 24))# 以元组形式返回对应的日期
# datetime.time(hours,minutes,seconds)
# 以元组形式返回对应的时间
print(datetime.time(21,00,00))# 以元组形式返回对应的时间
# datetime.timezone(number)
# 修改当前时区
# datetime.datetime()
# 构建日期+时间
print(datetime.datetime(2021,1,24,21,00,00))
# datetime.datetime.now()
# 获取当前时间
print(datetime.datetime.now())# 打印当前时间
calendar(日历)模块
import calendar
# calendar.calendar(年,月)
print(calendar.calendar(2021)) # 打印2021的日历
2、uuid
—什么是uuid
—UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过*控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库创建时的名称重复问题。
—python如何获取uuid
import uuid
# uuid.uuid4()
# 生成一个uuid
print(str(uuid.uuid4()))
3、加密模块
—保证数据的安全性
—加密算法:
—不可逆加密(哈希加密、hash算法)
——整个加密是单向的,不可逆的,结果是唯一的
——主要作用:
——1、密码加密
——2、 数据校验
—可逆加密(DES)
——对称加密
——加密和解密的秘钥是同一个!!
——非对称加密
——加密和解密使用一对秘钥
—hashlib模块
import hashlib
# 方法1
# 创建md5对象
m = hashlib.md5()
# 将需要加密的明文更新进去
hashlib.update(明文)# 字节类型数据,可以用字符串.encode("utf-8")转换成字节数据
hashlib.update(追加的明文)# 字节类型
print(hashlib.hexdigest())# 打印哈希摘要
#方法2
m = hashlib.md5(明文)# 字节类型数据,可以用字符串.encode("utf-8")转换成字节数据
hashlib.update(追加的明文)# 字节类型
print(hashlib.hexdigest())
—hmac模块
—在使用哈希算法的同时,也使用了对称加密
import hmac
# hmac.new("明文".encode("utf-8"), "追加的明文".encode("utf-8"), "加密算法")
h = hmac.new("123456".encode("utf-8"), "123nihao".encode("utf-8"), "MD5")
h = hmac.new("123456".encode("utf-8"), digestmod="MD5")
print(h.hexdigest())# 打印生成的摘要
4、IO流
—什么叫做IO流
—IO Stream(input output stream):
——狭义上:内存和永久存储设备之间数据流动
——广义上:内存和(其他电脑|其他存储设备)间数据的交互
推荐阅读