模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能)
本质就是.py文件(文件名:test.py,对应的模块名:test)
包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个__init__.py文件)
import module_name
import module_name,module2_name
from module_alex import *
尽量不用import *
from module_alex import logger as logger_alxe
import module_alex 本质就是将module_alex中的代码解释完赋值给module_alex这个变量,调用函数和变量需要加上模块名
from module_alex import name
相当于只解释了name变量,可以直接使用,不需要加模块名
导入模块的本质就是把python文件解释一遍
导入包的本质就是执行包下的__init__.py文件
import module_name-> module_name.py ->module_name.py的路径->sys.path
os.path.abspath(file) 取文件当前绝对路径
获取目录名:os.path.dirname()
sys.path是一个列表,要把导入文件的目录放到sys.path列表中,sys.path.insert()插入到最前面,sys.path.append()增加到列表中
导入包下的其他模块要先修改__init__.py
相对导入:from . import test1
多次调用模块中的方法,可以使用from module_name import method_name 提高效率
(1)标准库
(2)开源模块
(3)自定义模块(实际上就是自己写的python文件)
(1)time 、datetime
(2)random
(3) os
(4)sys
(5)shutil 文件处理(压缩、拷贝等)
(6)shelve 持久化k,v数据,pickle支持的任何python数据类型
(7)xml xml格式数据处理
(8)pyyaml yaml格式数据处理
(9)configparser 配置文件处理
(10)hashlib 加密
(11)hmac 加密
(12)re 正则表达式