logo

该视频仅会员有权观看

立即开通课程「Python 入门」权限。

¥
199
/ 年

标准库是 Python 内置的一组模块,提供了大量常用的功能和工具,可以帮助我们更快地开发应用程序,这些标准库模块是 Python 的核心组成部分,可以直接使用,通常存放在 Python 安装目录下的 lib 目录中。

模块查找路径

我们可以通过 sys 模块查看标准库路径:

import sys # 查看标准库路径 print(sys.prefix) # 输出: Python 安装路径 print(sys.exec_prefix) # 输出: Python 执行路径

sys.prefixsys.exec_prefix 属性分别返回 Python 安装路径和执行路径,其中包含了标准库。这里我们导入的 sys 模块就是 Python 的标准库之一,之所以我们可以在代码中直接使用 sys 模块,这是因为这些标准库所在路径默认被包含在了 sys.path 中,这个路径是一个列表,包含了 Python 查找模块的路径。在导入模块时,Python 会按照 sys.path 中的路径顺序进行查找。

# libs.py import sys # 查看 sys.path for path in sys.path: print(path)

比如我们这里可以查看当前 Python 解释器的 sys.path 路径:

$ python3 libs.py /Users/cnych/Movies/pybase/lesson17 # 当前目录 /Library/Frameworks/Python.framework/Versions/3.12/lib/python312.zip /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12 /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/lib-dynload /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages

上面列表中的路径就是 Python 查找模块的路径,包括当前目录、Python 安装目录、第三方库目录等,我们通过 pip 安装的第三方库会被添加到 site-packages 目录中。现在知道为什么我们可以直接导入当前目录和标准库中的模块了吧?因为这些路径都被包含在了 sys.path 中,Python 会按照这些路径顺序进行查找。

如果我们本地开发的一些包或者模块想让其他项目,我们可以将这些包或模块的路径添加到 sys.path 中,这样就可以在其他项目中导入这些包或模块了。

假设有一个自定义模块 mymodule.py 放在 /path/to/your/modules 目录下:

# /path/to/your/modules/mymodule.py def hello(): return "Hello from mymodule!"

现在我们可以通过 sys.path.append() 方法将这个路径添加到 sys.path 中,使 Python 能够在该路径下查找模块。

import sys # 添加新的模块查找路径 new_path = '/path/to/your/modules' if new_path not in sys.path: sys.path.append(new_path) # 查看修改后的 sys.path for path in sys.path: print(path)

这样我们就可以在其他项目中导入并使用这个自定义模块了。

# main.py import sys # 导入自定义模块 import mymodule # 使用自定义模块 print(mymodule.hello()) # 输出: Hello from mymodule!

通过添加自定义模块路径到 sys.path,可以在运行时动态导入并使用自定义模块。

常用标准库

标准库是 Python 随安装包一同提供的一系列模块,包含了许多常见任务的实现,比如文件操作、网络通信、数学运算等。使用标准库可以提高开发效率,避免重复造轮子。下面是一些常用的标准库模块:

  • os:提供了与操作系统交互的功能,如文件和目录操作、环境变量等。
  • sys:提供了 Python 解释器的变量和函数,用于操作 Python 运行时环境。
  • math:提供了数学运算函数,如三角函数、对数函数、幂函数等。
  • random:提供了生成随机数的函数,如随机整数、随机选择等。
  • datetime:提供了日期和时间处理功能,如日期时间格式化、日期时间运算等。
  • json:提供了 JSON 数据编码和解码功能,用于处理 JSON 数据。
  • re:提供了正则表达式功能,用于处理字符串匹配和替换。
  • urllib:提供了 URL 处理功能,用于发送 HTTP 请求和处理 URL。
  • logging:提供了日志记录功能,用于记录应用程序运行日志。
  • argparse:提供了命令行参数解析功能,用于处理命令行参数。

下面我们通过实际示例来展示几个常用标准库模块的用法和功能。

math 模块

功能:提供基本的数学运算函数。

示例

import math print(math.sqrt(16)) # 输出: 4.0 print(math.pi) # 输出: 3.141592653589793

解释math 模块提供平方根计算、常数 π 等数学运算和常量。

datetime 模块

功能:处理日期和时间。

示例

import datetime now = datetime.datetime.now() print(now) # 输出: 当前日期和时间 # 格式化日期时间 formatted = now.strftime("%Y-%m-%d %H:%M:%S") print(formatted) # 输出: 格式化后的日期时间

解释datetime 模块提供获取当前日期时间、日期时间运算等功能。

os 模块

功能:与操作系统进行交互。

示例

import os current_dir = os.getcwd() print(current_dir) # 输出: 当前工作目录 # ======== # 创建文件 with open('example.txt', 'w') as file: file.write('Hello, Python!') # 读取文件 with open('example.txt', 'r') as file: content = file.read() print(content)

解释os 模块提供获取当前工作目录、文件操作等功能。

sys 模块

功能:访问和操作 Python 解释器。

示例

import sys print(sys.version) # 输出: Python 版本信息

解释sys 模块提供获取 Python 版本、系统路径等功能。

urllib 模块

功能:网络请求

示例

import urllib.request response = urllib.request.urlopen('https://fastclass.cn') html = response.read() print(html[:200]) # 输出: 前200个字符

解释:使用 urllib 模块进行网络请求,获取网页内容。

json 模块

功能:处理 JSON 数据。

示例

import json data = { 'name': 'Alice', 'age': 30 } # 将字典转换为 JSON 字符串 json_str = json.dumps(data) print(json_str) # 输出: JSON 字符串 # 将 JSON 字符串转换为字典 data = json.loads(json_str) print(data) # 输出: 字典

解释json 模块提供 JSON 数据编码和解码功能。

Python 中内置了很多标准库模块,关于这些模块的详细用法和功能可以查看官方文档,这些标准库模块可以帮助我们更快地开发应用程序,提高开发效率。