为了解决维护问题,一般情况下,在一个完整的项目中,会将特定的功能分组,分别放到不同的 文件中,在使用的过程中,可以单独维护,各个不同的文件之间互不影响,每个.py文件就被称为 一个模块,通过结合包的使用来组织文件。
封装思路:函数=>类=>模块=>包=>项目
优点:
- 提高了代码的可维护性
- 提高了代码的复用性【当一个模块被完成之后,可以在多个文件中使用】
- 引用其他的模块【第三方模块】
- 避免函数名和变量的命名冲突
#模块
'''
模块就是一个python文件模块分类:
1.内置模块: python 本身提供的模块 比如:os random time
2.自定义模块: 我们自己根据项目的需求,自己书写的模块
3.第三方模块:别人写好的具有特殊功能的模块
a.在使用第三方模块的时候,需要先安装 比如:numpy pandas flask
b.导入和使用
'''
#模块导入的方式:
#第一种: import模块名
#第二种: from模块名import模块名里面的方法
#示例:
#导入内置模块rimportos
fromrandom importrandint
1、自定义import模块
代码演示:
#导入自定义模块
# import module1
#使用自定义模块的变量
# print(module1.name) # print(module1.age) # print(module1.love)
2、自定义from-import模块
代码演示:
frommodule1 import*
3、自定义from-import*模块
代码演示:
# * 表示通配符 模糊导入,使用*号后,可以直接使用模块中的所有的内容,比如变量,方法等(不推荐使用)
'''
from module1 import*print(name) print(age) print(love)
'''
#精确导入(推荐)
frommodule1 importname,age print(name)
print(age)
#给模块起别名as
importrandom asr
# print(r.randint(1,10))
总结:在python中,每个py文件其实都是一个模块,如果跨模块调用函数,则采用导入的方式将不同的功能进行划分,调用函数的时候相对比较方便的。
4、第三方模块
第三方模块:别人写好的具有特殊功能的模块
a.在使用第三方模块的时候,需要先安装 比如:numpy pandas flaskb.导入和使用
更新pip版本
python -m pip install --upgrade pip
第一种操作第三方模块的方式:
pip 专门用来安装和卸载python相关扩展的工具
pip -V查看当前pip的版本号
pip list查看当前项目安装的所有的扩展
pip install 扩展名(包名) 安装指定的包
一般我们在安装包的时候,会使用国内的镜像豆瓣的镜像源 s
安装flask框架
pip install flask -i https://pypi.doubanio.com/simple/
练习: 尝试去安装 numpy pandas flask requests lxml
pip uninstall 扩展名(包名)
pip uninstall flask
pip show扩展名(包名)第二种操作第三方模块的方式:
通过pycharm编辑器:文件->设置->项目->python解释器:
+表示安装包
-表示卸载包x
5、time时间模块
代码演示:
importtime
# 获取时间戳 从1970年1月1日0时0分0秒到现在经过的秒数
time.time()
#延迟程序多长时间执行一次
time.sleep()
6、datetime日期模块【掌握】
是对time模块的封装,比time模块更加全面
import datetime#获取当前的日期对象
date = datetime.datetime.now() print(date)
#设置日期对象
date1 = datetime.datetime(year=2022,month=11,day=10,hour=10,minute=23,second=11)
print(date1)
print(type(date1)) # <class 'datetime.datetime'>
print(date1.year,date1.month,date1.day) # 年 月 日print(date1.hour,date1.minute,date1.second) # 时 分 秒
print(date1.date()) # 2022-11-10
print(date1.time()) # 10:23:11
#将datetime.datetime类型转换为字符串
# strftime()将日期对象转换为字符串
print(type(date1.strftime("%Y-%m-%d %H:%M:%S"))) # <class 'str'>print(date1.strftime("%Y{}%m{}%d{}").format("年","月","日")) #2022年11月10日
# strptime()将字符串转换为日期对象
str1 = "2021-07-27 10:40:21"
print(type(datetime.datetime.strptime(str1,'%Y-%m-%d %H:%M:%S'))) #<class'datetime.datetime'>
# timestamp() 日期对象转换为时间戳da daimestamp()) # 1668046991.0
#fromtimestamp() 时间戳转换为日期对象
print(datetime.datetime.fromtimestamp(1668046991.0)) # 2022-11-10 10:23:11
#时间差
d1 = datetime.datetime(2022,1,13) d2 = datetime.datetime(2021,10,1) print(d1 - d2)
print(d2 - d1)
#timedelta 代表两个日期之间的时间差
dt = datetime.timedelta(days=5,hours=8) print(d1 + dt) # 2022-01-18 08:00:00
print(d1 - dt) # 2022-01-07 16:00:00
'''
# %y两位数的年份表示(00-99)
# %Y四位数的年份表示(000-9999)
# %m月份(01-12)
# %d月内中的一天(0-31)
#%H 24小时制小时数(0-23)#%I 12小时制小时数(01-12)#%M 分钟数(00-59)
# %S秒(00-59)
# %a本地简化星期名称# %A本地完整星期名称# %b本地简化的月份名称# %B本地完整的月份名称
# %c本地相应的日期表示和时间表示
# %j年内的一天(001-366)
# %p本地A.M.或P.M.的等价符
# %U一年中的星期数(00-53)星期天为星期的开始
# %w星期(0-6),星期天为星期的开始
# %W一年中的星期数(00-53)星期一为星期的开始
#%x本地相应的日期表示#%X本地相应的时间表示# %% %号本身
7、os模块
用于获取系统的功能,主要用于操作文件或者文件夹
代码演示:
importos
#listdir 查看指定目录下面所有的文件夹和文件
# r""将字符串中的特殊字符进行转义print(os.listdir(r"C:\Users\chenbingjie\Desktop\python2105\day11"))
#['test.py', '代码', '作业', '昨日作业', '笔记', '视频']
# 当前目录 .
# 上级目录 ..
#curdir 表示当前目录
print(os.curdir) # .
#getcwd() 获取当前路径
print(os.getcwd()) #C:\Users\chenbingjie\Desktop\python2105\day11\代码
#mkdir() 创建文件夹(不能创建已经存在的文件夹)#os.mkdir("测试")
#makedirs() 创建多层文件夹
# os.makedirs("a/b/c")
# rmdir()删除文件夹(只能删除空文件夹) # os.rmdir("demo")
# rename()重命名文件夹或者重命名文件
# os.rename("a","a11")
# ./表示当前目录 ../表示上级目录
# os.rename("../test.py","../demo.py")
# remove()删除文件
# os.remove("demo.py")
#os.path.join() 拼接路径print(os.path.join(r"C:\Users\chenbingjie\Desktop\python2105\day11\代码","func.py"))
#os.path.split() 拆分路径
path =r"C:\Users\chenbingjie\Desktop\python2105\day11\代码\1栈和队列.py"print(os.path.split(path))
#os.path.splitext() 拆分文件和扩展名
print(os.path.splitext(path))
# os.path.abspath获取绝对路径
print(os.path.abspath("func.py"))
#os.path.getsize() 获取文件大小
print(os.path.getsize("func.py"))
# os.path.isfile() 判断是否是文件,若是文件返回True 若不是文件 返回Falseprint(os.path.isfile("func.py")) # True
#os.path.isdir() 判断是否是文件夹,若是文件夹 返回True 若不是文件夹 返回False
print(os.path.isdir("a11")) # True
# os.path.exists() 判断文件或者文件夹是否存在 若存在返回True 若不存在 返回Falseprint(os.path.exists("demo.py")) #False
#os.path.dirname 获取路径的文件夹部分
print(os.path.dirname(path))
#os.path.basename 获取路径的文件名部分
print(os.path.basename(path))
重点掌握:
1.获取指定路径下的文件夹和文件
os.listdir()
2.创建目录(目录存在,不能创建)
os.mkdir()
3.创建多层目录
os.makedirs()
4.删除目录
os.rmdir()
5.删除文件
os.remove()
6.重命名文件或者重命名文件夹
os.rename()