1、什么是模块?
模块(module),它特指就是xxx.py文件
2、如何导入模块
如果默认没有在包中
import xxxx import random
import uuid, sys
import os.path as 别名
from 包路径 import 模块名称
from 包路径.模块名称 import 方法、类、变量
from functools import partial
3、常见模块功能
random:
目前所有的计算机API实现的随机都是伪随机数
|-- random.random() # 返回一个[0, 1)的随机数
|-- random.randint(n, m) # 返回[n, m]范围内的随机整数
|-- random.randrange(n, m) # 返回[n, m)范围内的随机整数
|-- random.choice(sequence) # 从一个序列中随机返回一个元素
|-- random.uniform(n, m) # 返回[n, m]范围内的随机数
|-- random.shuffle(列表) # 随机洗牌列表中的元素顺序
math:
进行数学计算
|-- math.ceil(num) # 向上取整
|-- math.floor(num) # 向下取整
|-- math.abfs(num) # 求绝对值
|-- math.modf(num) # 以元组的形式返回整数和小数部分
|-- math.pi # 圆周率
|-- math.pow(num, num2) # 幂次方 num**num2
|-- math.sqrt(num) # 开平方根
os:
主要管理操作系统文件管理系统
|-- chdir(path) # 修改当前工作空间路径的
|-- curdir # 当前工作空间的路径
|-- os.getcwd() # 获取路径的绝对路径
|-- os.path.abspath(path) # 获取路径的绝对路径
|-- os.cpu_count() # 获取当前电脑的CPU架构
|-- os.device_encoding(fd) # 获取设备的编码
|-- os.getpid() # 获取进程编号
|-- os.getppid() # 获取当前进程的父进程编号
|-- os.kill() # 通过编号杀死进程
|-- os.listdir(path) # 遍历path路径下的所有文件和文件夹,以列表形式返回名称
|-- os.mkdir() # 创建一个单层文件夹(目录)
|-- os.makedirs() # 创建多层目录
|-- os.name # 获取操作系统名称
|-- os.rename() # 重命名
|-- os.remove() # 移除文件
|-- os.removes() # 移除多层目录
|-- os.rmdir() # 删除目录
|-- os.sep # 当前系统对应的文件分隔符
os.path
推荐使用 from os import path 导入方式
|-- os.path.abspath(path) # 获取path的绝对路径
|-- os.path.altsep # 路径的分割符
|-- os.path.basename(path) # 获取路径对应的文件名称
|-- os.path.dirname(path) # 获取文件所在目录
|-- os.path.exists(path) # 判断文件是否存在
|-- os.path.getatime(path) # 获取文件最后的访问时间
|-- os.path.getctime(path) # 获取文件的创建时间
|-- os.path.getmtime(path) # 获取文件的修改时间
|-- os.path.getsize(path) # 获取文件大小,单位是B(字节)
|-- os.path.isdir(path) # 判断path是不是目录
|-- os.path.isfile(path) # 判断路径是不是一个文件
|-- os.path.isabs(path) # 判断路径是不是一个绝对路径
|-- os.path.islink(path) # 判断路径是不是一个链接(软连接、硬链接)
|-- os.path.ismount(path) # 判断路径是不是一个挂载文件(U盘、光驱等)
|-- os.path.join(path1, path2) # 完成路径的拼接,会自动根据系统生成分隔符
|-- os.path.split(path) # 分隔文件路径
time:
|-- time.asctime() # 返回当前时间,格式是西欧格式
|-- time.ctime() # 返回当前时间,格式是西欧格式
|-- time.gmtime() # 返回当前时间,时间对象,注意:时区是伦敦时区
|-- time.localtime() # 返回当前时间,时间对象,注意:时区是当前时区
|-- time.sleep(seconds) # 让当前线程停止运行
|-- time.time() # 获取当前时间戳
|-- time.struct_time(元组) # 构造一个对应的时间对象
|-- time.strftime() # 将一个时间对象格式化为特定的字符串输出
|-- time.strptime() # 将特定的字符串时间转换为时间对象
datetime模块
import datetime
|-- datetime.datetime.now() # 获取当前时间对象
|-- datetime.date(year, month, day) # 构造一个日期对象
|-- datetie.time(hour, min, seconds) # 获取时间对象
|-- str(datetime对象) # 格式化datetime对象为字符串
calendar模块
日历模块
hashlib模块
加密算法相关的模块
加密算法:
|-- 通过是否可逆
|-- 可逆加密
|-- 加密和解密是否使用同一个秘钥
|-- 对称加密 DES
使用同一秘钥加密和解密
|-- 非对称加密 RSA
使用一对公私钥对
|-- 不可逆加密(散列加密、hash加密、哈希加密)
md3、md4、md5
>>> md5 = hashlib.md5("123".encode("utf-8"))
>>> md5.hexdigest()
'202cb962ac59075b964b07152d234b70'
sha1、sha256、sha384 ...
二进制的128位数组 ==> 32位字符串
使用场景:密码加密、文件校验
hash,引入密值 salt
uuid:具有唯一性
import uuid
s = uuid.uuid4()
s.hex
今天分享内容就到这里,给大家分享几个练习题。
1、遍历磁盘
输入一个路径,打印当前路径及子路径中的所有文件的绝对路径
2、使用作业1的代码完成磁盘视频的筛选
3、完成一个登陆注册案例(密码加密)