领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

第十章:Python常用标准库(常用的 python 标准库都有哪些?)

nixiaole 2025-06-15 18:26:36 知识剖析 2 ℃

10.1 os库 - 操作系统交互

10.1.1 理论知识

os 库提供了与操作系统进行交互的功能,允许我们执行诸如文件和目录操作、进程管理、环境变量访问等任务。通过 os 库,Python 程序能够与底层操作系统紧密结合,实现跨平台的系统级功能。

10.1.2 示例代码

import os

# 获取当前工作目录
current_dir = os.getcwd()
print(f"当前工作目录: {current_dir}")

# 创建新目录
new_dir = "new_folder"
if not os.path.exists(new_dir):
    os.mkdir(new_dir)
    print(f"创建目录 {new_dir} 成功")

# 列出目录内容
dir_contents = os.listdir(current_dir)
print(f"{current_dir} 的目录内容: {dir_contents}")

# 删除目录
if os.path.exists(new_dir):
    os.rmdir(new_dir)
    print(f"删除目录 {new_dir} 成功")

10.1.3 代码解释

  • 首先导入 os 库。
  • 使用 os.getcwd() 获取当前工作目录,并打印出来。
  • 定义一个新目录名 new_folder,通过 os.path.exists() 检查该目录是否存在,如果不存在则使用 os.mkdir() 创建目录,并打印成功信息。
  • 使用 os.listdir() 列出当前工作目录的内容,并打印。
  • 再次检查新创建的目录是否存在,如果存在则使用 os.rmdir() 删除目录,并打印成功信息。

10.2 sys库 - 系统相关参数和函数

10.2.1 理论知识

sys 库提供了对解释器使用或维护的一些变量的访问,以及与解释器进行交互的函数。它可以用于获取命令行参数、访问 Python 模块搜索路径、操作标准输入输出流等。

10.2.2 示例代码

import sys

# 获取命令行参数
print("命令行参数:", sys.argv)

# 标准输出流写入
sys.stdout.write("这是通过 sys.stdout 写入的内容\n")

# 退出程序
sys.exit(0)

10.2.3 代码解释

  • 导入 sys 库后,sys.argv 是一个包含命令行参数的列表。第一个元素 sys.argv[0] 是脚本的名称,后续元素是在命令行中跟在脚本名称后的参数。这里直接打印出命令行参数列表。
  • 使用 sys.stdout.write() 向标准输出流写入内容,与 print() 函数类似,但 sys.stdout.write() 不会自动添加换行符,所以手动添加了 \n。
  • sys.exit() 用于退出 Python 程序,参数 0 表示正常退出。如果提供非零参数,通常表示异常退出。

10.3 datetime库 - 日期和时间处理

10.3.1 理论知识

datetime 库用于处理日期和时间,它提供了多个类来表示日期、时间、时间间隔等。主要的类有 datetime、date、time 和 timedelta。datetime 类结合了日期和时间信息,date 类仅处理日期,time 类仅处理时间,timedelta 类用于表示两个日期或时间之间的时间间隔。

10.3.2 示例代码

from datetime import datetime, date, time, timedelta

# 获取当前日期和时间
now = datetime.now()
print("当前日期和时间:", now)

# 获取当前日期
current_date = date.today()
print("当前日期:", current_date)

# 获取当前时间
current_time = now.time()
print("当前时间:", current_time)

# 创建一个指定的日期
specific_date = date(2024, 10, 1)
print("指定日期:", specific_date)

# 创建一个指定的时间
specific_time = time(14, 30, 0)
print("指定时间:", specific_time)

# 时间间隔操作
one_week = timedelta(days = 7)
new_date = current_date + one_week
print("一周后的日期:", new_date)

10.3.3 代码解释

  • 从 datetime 库中导入 datetime、date、time 和 timedelta 类。
  • 使用 datetime.now() 获取当前的日期和时间,并打印。
  • 通过 date.today() 获取当前日期并打印。
  • 从当前的 datetime 对象 now 中提取时间部分并打印。
  • 使用 date() 类创建一个指定的日期 2024 - 10 - 01 并打印。
  • 使用 time() 类创建一个指定的时间 14:30:00 并打印。
  • 创建一个表示一周时间间隔的 timedelta 对象 one_week,将其加到当前日期上,得到一周后的日期并打印。

10.4 random库 - 生成随机数

10.4.1 理论知识

random 库用于生成伪随机数。它提供了多种生成随机数的函数,可用于模拟随机事件、打乱序列、从序列中随机选择元素等场景。伪随机数是通过算法生成的,看似随机,但实际上是基于初始种子值生成的可预测序列,如果种子值相同,生成的随机数序列也相同。

10.4.2 示例代码

import random

# 生成 0 到 1 之间的随机浮点数
random_float = random.random()
print("0 到 1 之间的随机浮点数:", random_float)

# 生成指定范围内的随机整数
random_int = random.randint(1, 10)
print("1 到 10 之间的随机整数:", random_int)

# 从列表中随机选择一个元素
fruits = ['apple', 'banana', 'cherry']
random_fruit = random.choice(fruits)
print("随机选择的水果:", random_fruit)

# 打乱列表顺序
random.shuffle(fruits)
print("打乱顺序后的水果列表:", fruits)

10.4.3 代码解释

  • 导入 random 库后,使用 random.random() 生成一个介于 0(包括)和 1(不包括)之间的随机浮点数并打印。
  • random.randint(a, b) 生成一个介于 a(包括)和 b(包括)之间的随机整数,这里生成 1 到 10 之间的随机整数并打印。
  • random.choice(seq) 从非空序列 seq 中随机选择一个元素,这里从水果列表中随机选择一个水果并打印。
  • random.shuffle(seq) 就地打乱可变序列 seq 的顺序,这里打乱水果列表的顺序并打印。

10.5 json库 - JSON 数据处理

10.5.1 理论知识

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于在网络应用中传输数据。json 库提供了将 Python 对象转换为 JSON 格式字符串(序列化)以及将 JSON 格式字符串转换回 Python 对象(反序列化)的功能。

10.5.2 示例代码

import json

# Python 字典
data = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

# 将 Python 对象转换为 JSON 字符串
json_data = json.dumps(data)
print("JSON 字符串:", json_data)

# 将 JSON 字符串转换回 Python 对象
decoded_data = json.loads(json_data)
print("解码后的 Python 对象:", decoded_data)

10.5.3 代码解释

  • 首先定义一个 Python 字典 data。
  • 使用 json.dumps() 将 Python 字典转换为 JSON 格式的字符串,结果存储在 json_data 中并打印。
  • 然后使用 json.loads() 将 JSON 字符串 json_data 转换回 Python 对象,存储在 decoded_data 中并打印,可看到与原始的 data 字典内容一致。
最近发表
标签列表