2.81【模块与包】
模块与包
什么是模块
模块就是已经构建好能够实现特定功能的代码的.py文件,在需要实现相应功能的时候可以直接调用该模块的函数或变量
模块化的好处
1.方便维护,代码定位准确
2.内部的变量,相互不影响,方便单个模块功能调试、升级,方便模块间组合、分解
3.方便团队开发,多人协作互不干扰
4.模块可以复用
模块的来源
1.自定义:由自己构建的,常用于实现该项目特定需求的模块
2.内置:标准库模块:Python 提供了一组标准库模块,这些模块是随着 Python 解释器一起安装的,可以直接在代码中使用。例如,math
,datetime
,os
,random
等
3.第三方:需要使用pip下载的由他人编写好的模块,例如爬虫中常用的requests
模块的使用
导入模块
使用from…import…导入到当前文件
import math
# 或者仅导入特定函数
from datetime import datetime, timedelta
调用
直接使用,或者用.
来使用该模块中的函数
import math
print(math.sqrt(16)) # 使用 math 模块中的 sqrt() 函数计算平方根
模块的重命名
一般为了使模块更加简短、或者避免重名,我们会用as
来为模块重命名,使用方法也很简单:
import math as m # 将 math 模块重命名为 m
print(m.sqrt(16)) # 使用重命名后的名称调用模块中的函数
什么是包
包(Package)是一种用于组织和管理 Python 模块的方式。它是一个包含了多个模块和子包的文件夹。
包的结构
package_name/ # 包的根目录 __init__.py # 包的初始化文件 module1.py # 模块1 module2.py # 模块2 subpackage/ # 子包 __init__.py # 子包的初始化文件 submodule1.py # 子模块1 submodule2.py # 子模块2
其中package_name
是包的根目录,根目录下包含了__init__.py
文件用于标识这是一个包,并且在其中执行初始化操作
相对路径与绝对路径
-
相对路径(Relative Path):相对路径是基于当前工作目录或当前文件所在位置的路径表示。它描述了如何从一个位置到达另一个位置的路径,而不涉及完整的文件系统路径。
相对路径可以使用特殊符号
.
(表示当前目录)和..
(表示上级目录),以及文件或目录名来构建路径。相对路径是相对于某个参考点的路径。示例:
./subfolder/file.txt
表示当前目录下的子目录subfolder
中的file.txt
文件。 -
绝对路径(Absolute Path):绝对路径是一个完整的路径,从文件系统的根目录开始,描述了从根目录到目标文件或目录的完整路径。
绝对路径包括文件或目录的顶级目录、各级子目录以及文件或目录名。绝对路径提供了从根目录到目标位置的详细路径信息。
示例:
C:\Users\username\Documents\file.txt
是一个 Windows 系统中的绝对路径。import os # 当前工作目录 current_dir = os.getcwd() print("当前工作目录:", current_dir) # 当前工作目录: /home/user/myproject # 相对路径 relative_path = "subfolder/file.txt" absolute_path = os.path.join(current_dir, relative_path) print("相对路径:", relative_path) # 相对路径: subfolder/file.txt print("相对路径解析为绝对路径:", absolute_path) # 相对路径解析为绝对路径: /home/user/myproject/subfolder/file.txt # 绝对路径 absolute_path = "/Users/username/Documents/file.txt" file_name = os.path.basename(absolute_path) dir_name = os.path.dirname(absolute_path) print("绝对路径:", absolute_path) # 绝对路径: /Users/username/Documents/file.txt print("文件名:", file_name) # 文件名: file.txt print("目录名:", dir_name) # 目录名: /Users/username/Documents
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!