Python模块篇(五)

模块

模块与包

模块是一个包含 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
相关推荐
腾讯TNTWeb前端团队4 小时前
helux v5 发布了,像pinia一样优雅地管理你的react状态吧
前端·javascript·react.js
范文杰7 小时前
AI 时代如何更高效开发前端组件?21st.dev 给了一种答案
前端·ai编程
拉不动的猪7 小时前
刷刷题50(常见的js数据通信与渲染问题)
前端·javascript·面试
拉不动的猪7 小时前
JS多线程Webworks中的几种实战场景演示
前端·javascript·面试
FreeCultureBoy8 小时前
macOS 命令行 原生挂载 webdav 方法
前端
uhakadotcom9 小时前
Astro 框架:快速构建内容驱动型网站的利器
前端·javascript·面试
uhakadotcom9 小时前
了解Nest.js和Next.js:如何选择合适的框架
前端·javascript·面试
uhakadotcom9 小时前
React与Next.js:基础知识及应用场景
前端·面试·github
uhakadotcom9 小时前
Remix 框架:性能与易用性的完美结合
前端·javascript·面试
uhakadotcom9 小时前
Node.js 包管理器:npm vs pnpm
前端·javascript·面试