内容回顾:
|-- 函数结尾工作
|-- 深入讲解了递归在算法中的使用
|-- 斐波那契数列实现和使用
|-- lambda表达式
lambda [参数列表]:函数体
|-- 偏函数
函数的重新定义
from functools import partial
|-- 全局函数
|-- 系统内置的常见模块
|-- random
random.random()
random.randint()
random.randrange()
random.uniform()
random.choice()
|-- builtins
这个默认加载内置模块、全局函数、常见异常类
|-- functools
这个模块主要提供跟函数相关的操作
partial()、reduce()
|-- math
pi、ceil、floor、pow()、sqrt()、modf()
|-- copy
讲深浅拷贝时再说
|-- os
主要操作的就是系统的文件管理系统
今日目标:
|-- 内置模块
|-- os.path
|-- sys
|-- time
|-- datetime
|-- calendar
|-- hashlib
|-- hmac
|-- uuid
|-- IO流操作
open全局函数
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) # 分隔文件路径
sys模块
|-- sys.argv # 获取脚本名称和参数
|-- sys.exit() # 退出系统
|-- sys.getdefaultencoding() # 或者默认编码
|-- sys.getfilesystemencoding() # 或者默认文件系统编码
|-- sys.getrecursionlimit() # 获取递归的限制层数
|-- sys.setrecursionlimit() # 设置递归的限制层数
|-- getrefcount() # 对象的引用计数次数
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
sha1、sha256、sha384 ...
二进制的128位数组 ==> 32位字符串
使用场景:密码加密、文件校验
hash,引入盐值 salt
uuid:
import uuid
s = uuid.uuid4()
s.hex