模块
模块与包
模块是一个包含 Python 代码的文件,通常以 .py 作为扩展名。一个模块可以包含函数、类、变量,以及可执行的代码段。模块的作用是将代码分割成逻辑上独立的部分,以便更好地组织和复用
包是一个包含多个模块的目录。包通过在目录中包含一个特殊的 init .py 文件来区分普通目录和包目录。init.py 文件可以是空的,也可以包含包的初始化代码
模块的导入与使用
在 Python 中,导入和使用模块可以通过几种不同的方式来实现
- 使用 import 语句导入整个模块
这种方式导入整个模块,然后通过模块名访问其中的函数、类或变量
bash
# math_operations.py
def add(a, b):
return a + b
def subtract(a, b):
return a - b
导入并使用模块
bash
import math_operations
result = math_operations.add(5, 3)
print(result) # 输出:8
result = math_operations.subtract(5, 3)
print(result) # 输出:2
- 使用 from ... import ... 导入模块中的指定部分
这种方式可以只导入模块中的某个函数、类或变量,直接使用而不需要前缀模块名
bash
from math_operations import add, subtract
result = add(5, 3)
print(result) # 输出:8
result = subtract(5, 3)
print(result) # 输出:2
- 使用 as 关键字给模块或函数起别名
如果模块名或函数名较长,可以使用 as 关键字起一个别名,以简化后续的调用
bash
import math_operations as mo
result = mo.add(5, 3)
print(result) # 输出:8
from math_operations import subtract as sub
result = sub(5, 3)
print(result) # 输出:2
- 导入包中的模块
当模块位于包中时,可以使用点号 (.) 来导入包中的模块
bash
math_utils/
__init__.py
basic_operations.py
advanced_operations.py
可以导入并使用 basic_operations.py 中的函数
bash
from math_utils.basic_operations import add
result = add(5, 3)
print(result) # 输出:8
标准库的常用模块
Python 的标准库中包含了大量预先编写好的模块,可以直接导入并使用,极大地方便了开发。以下是一些常用的标准库模块及其功能简介
- os 模块
os 模块提供了与操作系统交互的功能,比如文件和目录操作、环境变量、进程管理等。
常用功能:
- os.listdir(path):列出指定目录下的文件和子目录。
- os.mkdir(path):创建目录。
- os.remove(path):删除文件。
- os.rename(src, dst):重命名文件或目录。
- os.getenv(key):获取环境变量的值。
bash
import os
current_dir = os.getcwd() # 获取当前工作目录
print(current_dir)
files = os.listdir('.') # 列出当前目录下的文件和目录
print(files)
- sys 模块
sys 模块提供了与 Python 解释器相关的功能和变量,可以访问命令行参数、控制 Python 运行环境等。
常用功能:
- sys.argv:获取命令行参数列表。
- sys.exit([status]):退出程序,status 是退出状态码。
- sys.path:获取模块的搜索路径
bash
import sys
print(sys.argv) # 输出命令行参数列表
sys.exit(0) # 正常退出程序
- datetime 模块
datetime 模块用于处理日期和时间,可以创建、操作日期和时间对象。
常用功能:
- datetime.datetime.now():获取当前日期和时间。
- datetime.date(year, month, day):创建一个日期对象。
- datetime.timedelta(days=, seconds=, ...):表示时间间隔,用于时间的加减运算。
bash
from datetime import datetime, timedelta
now = datetime.now()
print(now)
yesterday = now - timedelta(days=1)
print(yesterday)
- math 模块
math 模块提供了数学函数和常数,如三角函数、对数、平方根等。
常用功能:
- math.sqrt(x):计算平方根。
- math.sin(x)、math.cos(x):计算三角函数。
- math.log(x, base):计算对数。
bash
import math
print(math.sqrt(16)) # 输出:4.0
print(math.sin(math.pi / 2)) # 输出:1.0
- random 模块
random 模块用于生成随机数,可以用于随机选择、打乱顺序等。
常用功能:
- random.random():生成 0 到 1 之间的随机浮点数。
- random.randint(a, b):生成 [a, b] 之间的随机整数。
- random.choice(seq):从序列中随机选择一个元素。
- random.shuffle(seq):随机打乱序列。
bash
import random
print(random.random()) # 输出一个随机浮点数
print(random.randint(1, 10)) # 输出 1 到 10 之间的随机整数
- re 模块
re 模块用于正则表达式操作,可以进行复杂的字符串匹配、查找、替换等。
常用功能:
- rre.match(pattern, string):从字符串开头进行正则匹配。
- rre.search(pattern, string):在字符串中搜索符合正则的内容。
- rre.findall(pattern, string):查找所有匹配的内容。
bash
import re
pattern = r'\d+' # 匹配一个或多个数字
text = "There are 123 apples and 456 oranges."
matches = re.findall(pattern, text)
print(matches) # 输出:['123', '456']
- json 模块
json 模块用于处理 JSON 数据,可以将 Python 对象与 JSON 数据进行相互转换。
常用功能:
- json.dumps(obj):将 Python 对象转换为 JSON 字符串。
- json.loads(json_str):将 JSON 字符串转换为 Python 对象。
- json.dump(obj, file):将 Python 对象以 JSON 格式保存到文件中。
- json.load(file):从文件中读取 JSON 数据并转换为 Python 对象。
bash
import json
data = {'name': 'Alice', 'age': 25}
json_str = json.dumps(data)
print(json_str) # 输出:{"name": "Alice", "age": 25}
data_from_json = json.loads(json_str)
print(data_from_json) # 输出:{'name': 'Alice', 'age': 25}
第三方库的安装与使用(如:pip工具)
在 Python 中,第三方库 是由社区或开发者提供的额外功能包,可以通过包管理工具 pip 来安装和管理。这些库可以极大地扩展 Python 的功能
pip 工具简介
- pip 是 Python 官方推荐的包管理工具,用于安装、升级和卸载 Python 包。使用 pip,你可以从 * Python 包索引(PyPI)中下载和安装各种第三方库。
现在基本使用pip3,pip 和 pip3 都是用于安装和管理Python包的工具,但它们的区别主要在于它们所对应的Python版本:
pip: 通常与 Python 2.x 版本绑定。当你使用 pip 命令时,它会默认安装和管理 Python 2.x 版本的包。
pip3: 专门用于 Python 3.x 版本。当你使用 pip3 命令时,它会默认安装和管理 Python 3.x 版本的包。
- 安装第三方库
要安装一个第三方库,比如requests(一个流行的HTTP库)
bash
pip3 install requests
在联网环境中下载库,不安装
bash
pip3 download requests -d /path/to/save
离线安装库
bash
pip3 install --no-index --find-links=/path/to/save requests
升级第三方库
bash
pip3 install --upgrade requests
卸载第三方库
bash
pip3 uninstall requests
查看已安装的库
bash
pip3 list
查看库的详细信息
bash
pip3 show requests
- 使用requirements文件安装库
在实际项目中,通常会使用一个requirements.txt文件来列出项目所需的所有库及其版本
bash
pip3 install -r requirements.txt
生成requirements文件
bash
pip3 freeze > requirements.txt