欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python---内置模块(2)

程序员文章站 2022-05-05 15:10:25
...

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):
——狭义上:内存和永久存储设备之间数据流动
——广义上:内存和(其他电脑|其他存储设备)间数据的交互