找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1053

积分

0

好友

131

主题
发表于 8 小时前 | 查看: 1| 回复: 0

欢迎来到Python标准库探索之旅!今天,我们将深入那些无需安装、开箱即用的核心模块。它们是Python的“瑞士军刀”,熟练掌握能让你的开发事半功倍。

🎯 今日学习目标

  • 熟练使用 datetime 处理日期和时间
  • 掌握 random 生成各种随机数据
  • 了解 os / sys 与操作系统交互
  • 能结合标准库解决实际问题(如日志时间戳、随机密码)

一、datetime:日期与时间处理

核心类一览

用途
datetime 日期 + 时间(最常用)
date 仅日期
time 仅时间
timedelta 时间间隔(用于加减)

常用操作示例

下面的代码展示了datetime模块的几种核心操作。

Python datetime模块代码示例与输出

格式化代码速查

  • %Y:四位年(2026)
  • %m:月(01-12)
  • %d:日(01-31)
  • %H:小时(00-23)
  • %M:分钟(00-59)
  • %S:秒(00-59)

二、random:生成随机数

常用函数演示

random模块能轻松生成各类随机数据,从数字到序列操作。

Python 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 → 错误流

实战:带参数的脚本

下面是一个读取命令行参数的简单脚本示例。

Python sys.argv读取命令行参数示例

综合实战:带时间戳的日志记录器

datetime和文件操作结合,可以轻松打造一个简易的日志记录器。

Python实现简单的文件与控制台日志记录器

运行后,app.log文件内容大致如下:

[2026-01-27 21:20:00] [INFO] 程序启动
[2026-01-27 21:20:00] [ERROR] 发生错误!

✅ 今日动手任务

1、用 randomstring 生成一个 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计算出生日期至今天数差

小结:标准库速查表

为了方便回顾,这里整理了一份今日所学模块的快速参考,更多细节可以查阅Python官方文档或社区整理的技术文档

模块 核心用途 典型场景
datetime 日期/时间处理 日志时间戳、倒计时、生日计算
random 随机数生成 抽奖、密码、测试数据
os 操作系统交互 文件路径、环境变量、目录操作
sys 系统参数 命令行参数、退出程序、标准流

黄金法则

  • 优先使用标准库,避免重复造轮子。
  • 日期处理用 datetime,路径操作现代项目推荐 pathlib(旧项目或简单场景可用 os.path)。
  • 生成随机数时注意安全性:普通场景用 random,加密或安全场景务必用 secrets

恭喜你完成了第17天的学习打卡!现在,datetime, random, os, sys 这四大高频标准库已加入你的技能包。坚持练习,把它们应用到实际项目中,你的开发效率一定会显著提升。如果在实践中遇到问题,欢迎来云栈社区与大家交流探讨。继续加油!




上一篇:Dexter 开源金融AI智能体:自主研究与分析部署指南
下一篇:Java UDP Socket编程实践:收发消息完整代码示例与解析
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-9 19:28 , Processed in 0.309345 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表