欢迎来到Python标准库探索之旅!今天,我们将深入那些无需安装、开箱即用的核心模块。它们是Python的“瑞士军刀”,熟练掌握能让你的开发事半功倍。
🎯 今日学习目标
- 熟练使用
datetime 处理日期和时间
- 掌握
random 生成各种随机数据
- 了解
os / sys 与操作系统交互
- 能结合标准库解决实际问题(如日志时间戳、随机密码)
一、datetime:日期与时间处理
核心类一览
| 类 |
用途 |
datetime |
日期 + 时间(最常用) |
date |
仅日期 |
time |
仅时间 |
timedelta |
时间间隔(用于加减) |
常用操作示例
下面的代码展示了datetime模块的几种核心操作。

✅ 格式化代码速查:
%Y:四位年(2026)
%m:月(01-12)
%d:日(01-31)
%H:小时(00-23)
%M:分钟(00-59)
%S:秒(00-59)
二、random:生成随机数
常用函数演示
random模块能轻松生成各类随机数据,从数字到序列操作。

实战:生成随机密码
import random
import string
def generate_password(length=12):
"""生成安全随机密码"""
chars = string.ascii_letters + string.digits + "!@#$%"
return ''.join(random.choices(chars, k=length))
print("随机密码:", generate_password(10)) # 如: aB3$kL9@mN
⚠️ 注意:random 是伪随机,不适合加密场景!安全场景请用 secrets 模块(如 secrets.token_urlsafe(16))。
三、os:操作系统接口
常用功能
os模块是你的程序与操作系统对话的桥梁。
import os
# 1. 获取环境变量
home = os.getenv("HOME") or os.getenv("USERPROFILE")
print("用户主目录:", home)
# 2. 文件/目录操作
print("当前工作目录:", os.getcwd())
os.makedirs("test_dir", exist_ok=True) # 创建目录(存在不报错)
# 3. 列出目录内容
files = os.listdir(".")
print("当前目录文件:", files[:5]) # 显示前5个
# 4. 路径拼接(跨平台安全!)
path = os.path.join("data", "input.txt")
print("完整路径:", path) # Windows: data\input.txt, Linux: data/input.txt
# 5. 检查文件是否存在
if os.path.exists("todos.json"):
print("✅ todos.json 存在")
✅ 替代方案:现代代码推荐使用 pathlib.Path(更面向对象)。
from pathlib import Path
p = Path("data") / "input.txt"
四、sys:系统特定参数
常用属性/方法
sys模块让你能访问与Python解释器紧密交互的变量和函数。
import sys
# 1. 命令行参数
print("脚本名:", sys.argv[0])
print("所有参数:", sys.argv[1:])
# 2. Python 版本信息
print("Python 版本:", sys.version)
print("版本元组:", sys.version_info)
# 3. 退出程序
# sys.exit(0) # 正常退出
# sys.exit(1) # 异常退出
# 4. 标准输入/输出
# sys.stdin → 输入流(如 input() 底层)
# sys.stdout → 输出流(如 print() 底层)
# sys.stderr → 错误流
实战:带参数的脚本
下面是一个读取命令行参数的简单脚本示例。

综合实战:带时间戳的日志记录器
将datetime和文件操作结合,可以轻松打造一个简易的日志记录器。

运行后,app.log文件内容大致如下:
[2026-01-27 21:20:00] [INFO] 程序启动
[2026-01-27 21:20:00] [ERROR] 发生错误!
✅ 今日动手任务
1、用 random 和 string 生成一个 8 位随机验证码(字母+数字)。
import random
import string
# 生成包含字母(大小写)和数字的字符集
characters = string.ascii_letters + string.digits # 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
# 随机选择 8 个字符并拼接成字符串
verification_code = ''.join(random.choices(characters, k=8))
print("8位随机验证码:", verification_code)
2、用 datetime 计算你的年龄(精确到天)。
修改代码中的出生日期即可运行。

小结:标准库速查表
为了方便回顾,这里整理了一份今日所学模块的快速参考,更多细节可以查阅Python官方文档或社区整理的技术文档。
| 模块 |
核心用途 |
典型场景 |
datetime |
日期/时间处理 |
日志时间戳、倒计时、生日计算 |
random |
随机数生成 |
抽奖、密码、测试数据 |
os |
操作系统交互 |
文件路径、环境变量、目录操作 |
sys |
系统参数 |
命令行参数、退出程序、标准流 |
✅ 黄金法则:
- 优先使用标准库,避免重复造轮子。
- 日期处理用
datetime,路径操作现代项目推荐 pathlib(旧项目或简单场景可用 os.path)。
- 生成随机数时注意安全性:普通场景用
random,加密或安全场景务必用 secrets。
恭喜你完成了第17天的学习打卡!现在,datetime, random, os, sys 这四大高频标准库已加入你的技能包。坚持练习,把它们应用到实际项目中,你的开发效率一定会显著提升。如果在实践中遇到问题,欢迎来云栈社区与大家交流探讨。继续加油!