什么是模块
定义的xx.py文件就是模块
模块的分类
根据模块的创建者来分
- 系统内置模块
python官方提供的、cpython 解释器提供的模块 - 第三方模块
由优秀的程序员、组织、公司提供
第三方模块需要使用,首先需要安装模块
— 在线安装 (简单方便,需要联网)
pip install module_name
— 离线安装
(1)先下载离线安装包(xxx.zip)
(2)解压安装包
(3)安装中肯定 setup.py
(4)cmd:python install setup.py - 自定义模块
模块的导入问题
使用 import 关键字导入
import 模块名
import 模块名 as alias(别名) #使用as做别名
import xx.xx as alias
from 包 import 模块名称 #python3强烈推荐的写法
random模块
random模块主要用来产生随机数(伪随机数)
常用方法
randint( m,n ) 产生[m,n]范围内的随机整数
random( ) 产生一个0-1之间的随机数
uniform( ) 产生基于正态分布的随机数
choice ( ) 在序列中随机筛选一个对象
math模块
math模块的主要作用是数学运算
常用方法
ceil( ) 向上取整
floor( ) 向下取整
e 自然常数
fabs( ) 求绝对值,等价于全局函数 abs( )
fmod( ) 求模的
isnan ( ) 判断某个数值不是数值
isfinite( ) 判断某个数值是否有限
pi 圆周率
pow( ) 幂次方
sqrt( ) 开平方根
os模块
主要是操作系统的文件系统
常用方法
chdir( path ) 修改当前工作目录
curdir os属性,获取当前目录,返回的是相对路径
chmod ( ) 修改权限
cpu_count( ) 返回cpu的核对应的线程数
getcwd( ) 获取当前目录,返回的是绝对路径
getpid( ) 获取当前进程的进程编号
getppid( ) 获取当前进程的父进程编号
kill( ) 通过进程编号杀死进程
linesep 对应系统的换行符
listdir( ) 返回对应目录下的所有文件及文件夹,返回一个列表
mkdir( ) 创建目录,支持多层创建
makedirs( ) 创建目录,只支持一层
open( ) 创建文件
pathsep 获取环境变量分隔符
sep 路径的分隔符
remove( ) 删除文件
removedirs( ) 删除目录,支持多层删除
system( ) 执行终端命令
os.path模块
是os的子模块
常用方法
abspath( 相对路径 ) 返回路径对应的绝对路径
altsep 查看python中的各种符号
basename() 文件名称
dirname () 该文件所在的目录
curdir 获取当前目录
exists() 判断文件或者目录是否存在
getctime() 获取创建时间
getmtime() 获取修改时间
getsize() 获取文件大小,单位是字节
isdir() 判断path是不是目录
isfile() 判断path是不是文件
isabs() 判断是否为绝对路径
islink() 判断路径是否为链接
ismount() 判断路径是否为挂载点
join( p1,p2 ) 拼接路径
sep 路径分隔符
split( ) 把路径分割成 dirname 和 basename,返回一个元组
realpath() 返回真实路径
给出一个路径,遍历当前所有的文件及文件夹
import os
from os import path
def scanner_file(url):
files = os.listdir(url)
for f in files:
real_path = path.join(url, f)
if path.isfile(real_path):
print(path.abspath(real_path))
elif path.isdir(real_path):
scanner_file(real_path)
sys模块
常用方法
api_version python的内部版本号
argv() 接受脚本参数的,注意第一个参数是脚本名称
copyright 输出cpython的版权信息
exit() 退出系统
getdefultencoding() 获取默认编码
getfilesystemencoding() 获取文件系统默认编码
getrecursionlimit() 获取python对于递归的限制层数
setrecursionlimit(num) 重新设置递归的限制层数
getrefcount(对象) 获取对象的引用计数
getwindowsversion() 获取窗口的版本信息
version() 获取版本信息
hashlib模块
hash加密库
加密算法的分类
以算法是否可逆:
- 可逆算法
以是不是使用同一个密匙
-对称加密
加密和解密用一把密匙
-不对称加密
加密和解密使用一对密匙 - 不可逆算法(hash算法)
- 注意:hashlib所有算法操作起来方法一样
- 使用步骤
(1)创建算法对象,返回一个算法对象
# 注意:参数值字节数据
md5 = hashlib.md5("123456".encode("utf-8"))
(2)如果不做盐值混淆
md5.hexdigest()
(3)如果需要盐值混淆
#hash容易碰撞破解,一般建议使用盐值混淆
md5.update(salt)
hmac模块
也是一个哈希加密库,而且使用对称加密
首先会使用对称加密(秘钥就是盐值),之后将加密后的数据再做一次hash加密,盐值混淆
所以整个结果十分安全
time模块
python提供操作时间和日期的模块
常用方法
asctime() 获取当前时间
localtime() 本地时间,方便于自己完成格式化
sleep() 休眠时间,单位是秒
time() 获取当前时间戳
strftime() 将一个时间对象格式化为特定字符串
strptime() 将一个特定的格式的时间字符串转化为时间对象
datetime模块
这个模块是对time模块的补充
常用的有个datetime子模块
常用方法
now() 获取当前时间
uuid(通用唯一识别码)
永不重复的字符串
使用方法:
uuid.uuid4().hex