1. 模块简介
1.1. 定义
模块:用来从逻辑上组织python代码(变量、函数、类、逻辑:实现一个功能),本质就是.py结尾的python文件
包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个__init__.py文件)
1.2. 导入方法
#导入方法: #一般推荐用这种 import module_alex, module2_alex #调用 module_alex.logger() #不提倡(容易重复)(不过要是多次用一个函数,用这个方法会节省大量时间,单用import每次都得找) from module_alex import * #相当于把代码全复制到这 from module_alex import m1, m2, m3 from module_alex import logger as logger_alex #只导一个方法,起别名 logger()
1.3. import本质(路径搜索和搜索路径)
导入模块:
- import:解释一遍,再封装起来,命名为module_alex:模块名(module_alex)加点调用
- from import导入:拿到当前位置执行一遍,使用时直接用名字即可
导入的本质:
扫描二维码关注公众号,回复:
3764968 查看本文章
- 导入模块的本质:把python文件解释一遍
- 导入包的本质:解释包下面的__init__.py文件
导入某个包下的模块:
修改__init__.py文件,用相对导入
#导入不在本目录下的模块 import sys, os #定义上上级目录 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(BASE_DIR) #加到搜索的第一个位置 print(sys.path) #备注如下: #__file__:当前文件的相对路径 #os.path.abspath(__file__):当前文件的绝对路径 #os.path.dirname(path) #去掉文件名,返回当前文件的目录
#导入包里面的模块: #包里面的__init__.py文件 from . import module #module:包里面的一个模块 #执行文件(想调用Package包下的module模块中的Add函数) import Package #1. 执行__init__.py文件, 把module所有方法复制给module Package.module.Add(2,3)
#导入其他目录下的包模块 import os, sys BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(BASE_DIR) from Day6 import Package Package.module.Add(2,3)
1.4. 导入优化
#虽然不建议用,但多次调用的话,这个方法很快 from module_alex import m1, m2, m3
1.5.模块的分类
模块分为三大类:
- 1. 标注库(内置模块)
- 2. 开源模块(第三方模块)
- 3. 自定义模块
2. 常用内置模块学习
2.1 time & datetime模块
#时间模块最基础内容 import time #获取当前时间 Data = time.time() #时间戳方式:1970 unix诞生,记录从这一年开始的描述 Data = time.localtime() #元组方式:返回本地时间 的struct time对象格式 #停止2秒 time.sleep(2) #取出年 Data = time.localtime() print(Data.tm_year)
2.2 random模块
#random模块 import random print (random.random()) #随机[0, 1) print (random.randint(1,4)) #随机整数[1,4] print(random.randrange(1,4)) #顾头不顾尾,[1, 4)
2.3 OS模块
提供对操作系统进行调用的接口
#OS模块 import os os.path.abspath(path) #返回path规范化的绝对路径 os.remove() #删除一个文件
2.4 sys模块
#sys模块 sys.path #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
2.5 shutil模块
copy文件用的,以及压缩包
2.6 json&pickle模块
用于序列化的两个模块
python中的字典、列表如何写到文件里(只能bytes类型或者字符串),用json转换
- json:用于字符串和python数据类型间的转换
- pickle:用于python特有的类型 和 python的数据类型间进行转换,支持python所有:函数、类
Json模块提供了四个功能:dumps、dump、loads、load
老老实实dump一次,load一次
2.7 shelve模块
2.8 xml处理模块
2.9 PyYAML模块
2.10 ConfigParser模块
2.11 Subprocess模块
2.12 logging模块
2.13 re模块
正则表达式:模糊查找(姓陈的,名字不超过2个字的)