Python模块
1、定义
模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件(文件名:test.py,对应的模块名:test)
包(package):用来从逻辑上组织模块,本质就是一个目录(必须带__init__.py文件)
2、导入方法
import module_name
调用:module_name.logger()
本质:module_name.py所有代码解释一遍,然后赋值给模块名,module_name <== all_code
import module_name,module_name2
import module_name as mn #重命名
from module_name import *
调用:logger()——->不需要模块名(相当于将module_name中的代码全部复制过来)
备注:不建议使用,可能会造成冲突,会造成相当方法的覆盖
from module_name import m1,m2,m3
本质:将module_name.py中的m1,m2,m3中的代码进行解释,并依次赋值给m1,m2,m3
from module_name import logger as lg
备注:相当于将module_name.logger()重命名
from . import module_name
备注:从当前路径导入module_name
3、import本质(路径搜索和搜索路径)
导入模块的本质就是把python文件解释一遍
import module_name—–>module_name.py——–>module_name.py 的路径—>sys.path
os.path.abspath(__file__)#获取当前文件的绝对路径,含文件名
os.path.dirname(os.path.abspath(__file__))#当前路径往前返回一层,不含文件名
path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#再往上返回一层路径
sys.path.append(path) #添加path到环境变量中,最后面
sys.path.insert(0,path) #添加路径到环境变量最前面
导入包的本质就是执行该包下的__init__.py文件
4、导入优化
from module_test import test #防止重复导入module
5、模块的分类
a:标准模块
b:开源模块
c:自定义模块
标准库:
1、time与datetime
import time
time.time() #获取时间戳,1970.1.1到现在的时间,单位秒
time.sleep(2) #休眠2秒
random模块
random.random() #产生一个随机浮点数(0–1)
random.randint(1,5) #产生一个随机整数(1–5)包含两端
random.randrange(1,5) #产生一个随机整数(1–5)不包含5
random.choice('hello') #从中随机的选择一个,参数为序列类型str或者list等
random.sample("hello",2) #从中最近的取两位
random.uniform(1,3) #在指定区间产生一个随机浮点数
random.shuffle([1,2,3,4,5]) #洗牌功能,打乱顺序
示例:产生随机的验证码
os模块
功能:提供对操作系统进行调用的接口
sys模块
shutil模块
高级的文件、文件夹、压缩包处理模块
shutil.copyfileobj(fsrc, fdst[, length]) #将文件内容拷贝到另一个文件中,可以部分内容
shutil.copyfile(src, dst) #拷贝文件
shutil.copymode(src, dst) #仅拷贝权限。内容、组、用户均不变
shutil.copystat(src, dst) #拷贝状态的信息,包括:mode bits, atime, mtime, flags
shutil.copy(src, dst) #拷贝文件和权限
shutil.copy2(src, dst) #拷贝文件和状态信息
shutil.copytree(src, dst, symlinks=False, ignore=None) #递归的去拷贝文件(目录)
shutil.rmtree(path[, ignore_errors[, onerror]]) #递归的去删除文件(目录)
shutil.move(src, dst) #递归的去移动文件
shutil.make_archive(base_name, format,…)
创建压缩包并返回文件路径,例如:zip、tar
<>base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至 当前目录,否则保存至指定路径,
如:www =>保存至当前路径
如:/Users/heimu/www =>保存至/Users/heimu/
<>format: 压缩包种类,"zip", "tar", "bztar","gztar"
<>root_dir: 要压缩的文件夹路径(默认当前目录)
<>owner: 用户,默认当前用户
<>group: 组,默认当前组
<>logger: 用于记录日志,通常是logging.Logger对象
shelve模块
shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式。
写:
读:
Re模块
正则表达式,模糊匹配