模块基础
基本概念
1.模块是从逻辑上组织python代码的形式
2.当代码量变得相当大的时候,最好把代码分成一些有组织的代码段,前提是保证它们的 彼此交互
3.这些代码片段相互间有一定的联系,可能是一个包含数据成员和方法的类,也可能是一组相关但彼此独立的操作函数
4.其实一个模块就是一个.py文件
作用: 模块可以实现代码的重用,导入模块,就可以使用模块中已经定义好的类,函数和变量,减少代码的冗余性
搜索路径: 索路径在 sys.path 中定义 也可以通过 PYTHONPATH 环境变量引入自定义目录
导入模块 (import)
1.使用 import 导入模块 属性通过 “模块名.属性” 的方法调用 例如:import random
2.如果仅需要模块中的某些属性,也可以单独导入 例如:from random import choice, randint
3.导入模块时,可以为模块取别名 例如: import pickle as p
模块加载 (load)
1.一个模块只被 加载一次,无论它被导入多少次
2.只加载一次可以 阻止多重导入时,代码被多次执行
random模块:
randint: 取范围内的整数 choice:随机取出范围内的一个数据
shutil模块:
shutil 可以简单地理解为 sh + util,shell 工具 的意思
shutil 模块是对 os 模块的补充,主要针对文件的 拷贝、删除、移动、压缩和解压 操作
shutil 模块的主要方法:
文件操作
shutil.copyfileobj(fsrc, fdst): 拷贝一个对象
shutil.copyfile(src, dst):拷贝一个文件(无元数据)
shutil.copy(src, dst):拷贝文件或目录包括权限
目录操作
shutil.copytree(src, dst): 递归的复制目录
shutil.rmtree(path): 删除整个目录
权限管理
shutil.copymode(src, dst): 只拷贝权限
shutil.chown(path, user=None, group=None): 更改所有者 用户 和 组
subprocess 模块:
run 方法 subprocess.run(args, shell=True): ages表示的命令
time 模块
time 模块主要方法
结构化时间元组共有9个元素,按顺序排列如下表:
索引 | 属性 | 取值范围 |
---|---|---|
0 | tm_year(年) | 比如 2021 |
1 | tm_mon(月) | 1 - 12 |
2 | tm_mday(日) | 1 - 31 |
3 | tm_hour(时) | 0 - 23 |
4 | tm_min(分) | 0 - 59 |
5 | tm_sec(秒) | 0 - 59 |
6 | tm_wday(weekday) | 0 - 6(0表示周一) |
7 | tm_yday(一年中的第几天) | 1 - 366 |
8 | tm_isdst(是否是夏令时) | 默认为-1 |
对于格式化控制字符串 "%Y-%m-%d %H:%M:%S,其中每一个字母所代表的意思如下表所示,注意大小写的区别:
格式 | 含义 | 格式 | 含义 |
---|---|---|---|
%a | 本地简化星期名称 | %m | 月份(01 - 12) |
%A | 本地完整星期名称 | %M | 分钟数(00 - 59) |
%b | 本地简化月份名称 | %p | 本地am或者pm的相应符 |
%B | 本地完整月份名称 | %S | 秒(01 - 59) |
%c | 本地相应的日期和时间 | %U | 一年中的星期数(00 – 53,星期日是一个星期的开始) |
%d | 一个月中的第几天(01 - 31) | %w | 一个星期中的第几天(0 - 6,0是星期天) |
%H | 一天中的第几个小时(24小时制,00 - 23) | %x | 本地相应日期 |
%I | 第几个小时(12小时制,01 - 12) | %X | 本地相应时间 |
%j | 一年中的第几天(001 - 366) | %y | 去掉世纪的年份(00 - 99) |
%Z | 时区的名字 | %Y | 完整的年份 |
time 模块主要方法
1. time.sleep(t): 睡眠或者暂停程序t秒
2. time.time(): 返回当前系统时间戳
时间格式之间的转换
Python的三种类型时间格式,可以互相进行转换
从 | 到 | 方法 |
---|---|---|
时间戳 | UTC结构化时间 | gmtime() |
时间戳 | 本地结构化时间 | localtime() |
本地结构化时间 | 时间戳 | mktime() |
结构化时间 | 格式化字符串 | strftime() |
格式化字符串 | 结构化时间 | strptime() |
os 模块
os.getcwd() getcwd(),查看当前所处的文件路径
os.listdir() listdir(), 查看当前目录下的所有文件(包括隐藏文件)
os.mkdir() 创建目录
os.makedirs() 递归创建目录
os.chdir() 切换当前所处的文件位置
os.symlink() 建立软链接
os.unlink 取消删除链接文件
os.remove() 只能删除单个文件
os.rmdir 只能删除空目录
os.path.abspath 查看os.path子模块的所有方法
pickle 模块
主要方法
方法 | 功能 |
---|---|
pickle.dump(obj, file) | 将 Python 数据转换并保存到 pickle 格式的文件内 |
pickle.load(file) | 从 pickle 格式的文件中读取数据并转换为 python 的类型 |
hashlib 模块
1.专门提供hash算法
hashlib.md5() 计算hash5的值
hexdigest() 以16进制的方式,显示md5值
tarfile 模块
tarfile模块允许创建、访问 tar 文件
同时支持 gzip、bzip2 格式
tarfile.open 打开包文件,文件不存在则会自动创建
tar.add 向包文件中添加压缩文件
re 模块
match 函数 开头匹配,如果匹配成功,则返回一个匹配对象;否则返回 None
search 函数 在字符串中查找正则表达式模式的第一次出现,如果匹配成功,则返回一个匹配对象;否则返回 None。
findall 函数 在字符串中查找正则表达式模式的所有出现;返回一个匹配对象的列表
finditer函数 查找字符串中所有匹配字符【返回迭代器】
split 方法 根据正则表达式中的分隔符把字符分割为一个列表,并返回成功匹配的列表
sub方法 把字符串中所有匹配正则表达式的地方替换成新的字符串
compile函数 对正则表达式模式进行编译,返回一个正则表达式对象
PyMySQL模块
pymysql.connect 连接数据库 cursor() 创建游标 execute() 执行sql语句 commit() 提交数据 close() 关闭数据库连接
JSON模块
loads 方法:对编码后的 json 对象进行 decode 解密,得到原始数据,需要使用的 json.loads() 函数
**dumps 方法:**可以将原始数据转换为 json 格式
json.loads() 将json格式【字符串类型】转换为字典
json.dumps() 将字典转换为json格式【字符串类型】
requests 模块
requests.get() 请求,获取网页内容 content() 查看图片内容
encoding() 查看获取网页数据的字符集
json() 查看json类型的数据【utf8】