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
相关推荐
测试老哥11 分钟前
功能测试干了三年,快要废了。。。
自动化测试·软件测试·python·功能测试·面试·职场和发展·压力测试
布瑞泽的童话11 分钟前
无需切换平台?TuneFree如何搜罗所有你爱的音乐
前端·vue.js·后端·开源
爱吃油淋鸡的莫何11 分钟前
Conda新建python虚拟环境问题
开发语言·python·conda
闲人编程19 分钟前
Python实现日志采集功能
开发语言·python·fluentd·filebeat·日志采集
白鹭凡23 分钟前
react 甘特图之旅
前端·react.js·甘特图
2401_8628867827 分钟前
蓝禾,汤臣倍健,三七互娱,得物,顺丰,快手,游卡,oppo,康冠科技,途游游戏,埃科光电25秋招内推
前端·c++·python·算法·游戏
luthane29 分钟前
python 实现armstrong numbers阿姆斯壮数算法
python·算法
后端小张30 分钟前
Redis 执行 Lua,能保证原子性吗?
数据库·redis·缓存
离开地球表面_9931 分钟前
索引失效?查询结果不正确?原来都是隐式转换惹的祸
数据库·后端·mysql