Python: 标准库入门(上)
最后更新:2026-09-22
Python 最强大的特性之一就是"内置电池"——安装 Python 时已经带了一整套标准库。这一课介绍四个最常用的模块:
random、time、sys、os。虽然每个只学最常用的几个函数,但已经能解决很多实际问题了。
1. random——随机数
PYTHON
import random
# 随机小数 [0, 1)
print(random.random()) # 0.3745...
# 随机整数 [a, b](包含两端)
print(random.randint(1, 10)) # 1 到 10 之间的随机整数
# 随机选择
fruits = ["苹果", "香蕉", "橘子", "葡萄"]
print(random.choice(fruits)) # 随机选一个
# 随机抽样(不重复)
print(random.sample(fruits, 2)) # 随机选 2 个
# 打乱顺序
cards = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
random.shuffle(cards)
print(cards) # 顺序被打乱了
▶ 示例:抽奖程序(难度⭐)
▶ 试一试输出:
TEXT
📖 仅展示
# 执行成功
2. time——时间处理
PYTHON
import time
# 当前时间戳(从 1970-01-01 到现在的秒数)
print(time.time()) # 1758588800.123
# 暂停执行(秒)
print("开始")
time.sleep(1) # 暂停 1 秒
print("1 秒后")
# 格式化当前时间
print(time.strftime("%Y-%m-%d %H:%M:%S")) # 2026-06-23 16:00:00
print(time.strftime("%Y年%m月%d日 %H时%M分")) # 2026年06月23日 16时00分
▶ 示例:计时器(难度⭐)
▶ 试一试输出:
TEXT
📖 仅展示
\r⏰ 时间到!
3. sys——系统交互
PYTHON
import sys
# Python 版本
print(sys.version) # 3.13.0 ...
# 命令行参数(运行 python script.py a b c 时)
print(sys.argv) # ['script.py', 'a', 'b', 'c']
# 退出程序
# sys.exit(0) # 正常退出
# 标准输入
# line = sys.stdin.readline() # 读取一行输入
▶ 示例:命令行计算器(难度⭐⭐)
▶ 试一试输出:
TEXT
📖 仅展示
用法:python calculator.py 数字1 运算符 数字2
示例:python calculator.py 3 + 5
错误:除数不能为0
4. os——操作系统
PYTHON
import os
# 当前工作目录
print(os.getcwd()) # D:\project
# 切换目录
# os.chdir("/tmp")
# 列出目录内容
for item in os.listdir("."):
print(item)
# 创建目录
# os.mkdir("new_folder")
# 检查路径
print(os.path.exists("test.txt")) # True
print(os.path.isfile("test.txt")) # True
print(os.path.isdir("data")) # True
# 路径拼接
path = os.path.join("data", "files", "test.txt")
print(path) # data/files/test.txt
▶ 示例:批量文件重命名(难度⭐⭐)
▶ 试一试输出:
TEXT
📖 仅展示
批量重命名示例(只显示,不执行):
遍历所有 .txt 文件,改为 prefix_001.txt 格式
5. 常见应用场景
- random:抽奖、验证码、随机生成测试数据、游戏随机事件。
- time:延迟执行、性能计时、计时器、定时任务。
- sys:读取命令行参数、控制程序退出、获取 Python 环境信息。
- os:文件管理、目录操作、路径处理、批量重命名。
❓ 常见问题
Q
random 模块适合做密码学安全的随机数吗?A 不适合。
random 模块用的是伪随机数生成器(PRNG),可预测。需要密码学安全的随机数(如生成密码、Token)用 secrets 模块。Q
time.sleep() 会让整个程序停住,怎么实现"不阻塞的延迟"?A 是的,
sleep() 会阻塞当前线程。如果需要非阻塞延迟,可以用多线程或在异步框架(如 asyncio)中实现。简单场景下 sleep() 够用了。Q
os 和 pathlib 用哪个?A Python 3.4+ 推荐用
pathlib(更面向对象、更直观),但 os 更底层、功能更全。新项目建议用 pathlib,需要底层系统调用时用 os。📖 小节
random:randint()、choice()、sample()、shuffle()——随机选择与生成time:time()时间戳、sleep()暂停、strftime()格式化sys:argv命令行参数、exit()退出程序os:文件路径检查、目录操作、文件重命名- 以上四个模块是 Python 标准库的"入门四件套",日常开发高频使用
📝 作业
-
基础题(难度⭐):写一个程序,生成 10 个 1 到 100 之间的随机整数,输出它们和它们的平均值。
-
进阶题(难度⭐⭐):写一个"密码生成器"函数
generate_password(length=8),生成包含大小写字母和数字的随机密码。提示:用string.ascii_letters + string.digits作为字符池,用random.choice()逐个选取。 -
挑战题(难度⭐⭐⭐):写一个"文件夹统计工具"。给定一个目录路径(通过
sys.argv传入),统计该目录下各种文件类型(扩展名)的数量和总大小。提示:用os.listdir()遍历,用os.path.splitext()获取扩展名,用os.path.getsize()获取文件大小。