为了解决维护问题,一般情况下,在一个完整的项目中,会将特定的功能分组,分别放到不同的  文件中,在使用的过程中,可以单独维护,各个不同的文件之间互不影响,每个.py文件就被称为  一个模块,通过结合包的使用来组织文件。

封装思路: 函数 => => 模块 => => 项目

优点:

  1. 提高了代码的可维护性
  2. 提高了代码的复用性【当一个模块被完成之后,可以在多个文件中使用】  
  3. 引用其他的模块【第三方模块】
  4. 避免函数名和变量的命名冲突

# 模块

'''

模块就是一个python文件模块分类:

1.内置模块: python 本身提供的模块 比如:os random time

2.自定义模块: 我们自己根据项目的需求,自己书写的模块

3.第三方模块: 别人写好的具有特殊功能的模块

          a.在使用第三方模块的时候,需要先安装 比如:numpy pandas flask

          b.导入和使用

'''

# 模块导入的方式:

# 第一种: import 模块名

# 第二种: from 模块名 import 模块名里面的方法

# 示例:

# 导入内置模块r import os

from random import randint

1、自定义import模块

代码演示:

# 导入自定义模块

# import module1

# 使用自定义模块的变量

# print(module1.name) # print(module1.age) # print(module1.love)

2、自定义from-import模块

代码演示:

from module1 import *

3、自定义from-import*模块

代码演示:

# * 表示通配符 模糊导入,使用*号后,可以直接使用模块中的所有的内容,比如变量,方法等(不推使用)

'''

from module1 import * print(name) print(age) print(love)

'''

# 精确导入 (推荐)

from module1 import name,age print(name)

print(age)

# 给模块起别名 as

import random as r

# print(r.randint(1,10))

总结:在python中,每个py文件其实都是一个模块,如果跨模块调用函数,则采用导入的方式将不同的功能进行划分,调用函数的时候相对比较方便的。

4、第三方模块

第三方模块: 别人写好的具有特殊功能的模块

a.在使用第三方模块的时候,需要先安装 比如:numpy pandas flask b.导入和使用

更新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时间模块

代码演示:

import time

# 获取时间戳 197011000秒到现在经过的秒数

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("","","")) #20221110

# 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模块

用于获取系统的功能,主要用于操作文件或者文件夹

代码演示:

import os

# 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 若不是文件 返回False print(os.path.isfile("func.py")) # True

# os.path.isdir() 判断是否是文件夹, 若是文件夹 返回True 若不是文件夹 返回False

print(os.path.isdir("a11")) # True

# os.path.exists() 判断文件或者文件夹是否存在 若存在返回True 若不存在 返回False print(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()​​​​​​​

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐