网站首页 > 知识剖析 正文
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 字典内容一致。
猜你喜欢
- 2025-06-15 LeetCode 力扣官方题解 | 380. O(1) 时间插入、删除和获取随机元素
- 2025-06-15 Python Numpy库详细教程(python numpy.pi)
- 2025-06-15 10款好用的开源 HarmonyOS 工具库
- 2025-06-15 HarmonyOS NEXT异步编程在ArkTS中具体怎么实现?
- 2025-06-15 耗电量减少28%,Chrome浏览器更省电了
- 2025-06-15 小时候玩过的打砖块游戏,大神用javascript写出来了
- 2025-06-15 Chrome修复JS引擎随机数没那么随机的问题
- 2025-06-15 用Three.js学习程序化建模(three.js介绍)
- 2025-06-15 数组(I) - 网络统计学(11)(数组总结)
- 2025-06-15 57.6万代码撕碎AI编程神话,20%「幽灵包」暗藏漏洞,苹果、微软已中招
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)