Python 常用内置标准库

这篇笔记将带你走进 Python 的"百宝箱"。Python 被称为"自带电池 "(Batteries Included)的语言,就是因为它内置了极其丰富的标准库,无需安装即可直接 import 使用。


📦 Python 常用内置标准库 (Standard Libraries) 学习笔记

1. 时间与日期:datetime

处理时间、日期、时区转换的利器。

python 复制代码
from datetime import datetime, timedelta

# 1. 获取当前时间
now = datetime.now()
print(f"当前时间: {now}")

# 2. 格式化输出 (strftime)
print(now.strftime("%Y-%m-%d %H:%M:%S")) # 2023-10-27 14:30:05

# 3. 字符串转时间对象 (strptime)
date_str = "2023-01-01"
dt_obj = datetime.strptime(date_str, "%Y-%m-%d")

# 4. 时间计算 (timedelta)
yesterday = now - timedelta(days=1)
future = now + timedelta(hours=2)

2. 数学与随机数:math & random

math:高精度数学计算

python 复制代码
import math

print(math.pi)        # 圆周率 3.14159...
print(math.sqrt(16))  # 开平方 4.0
print(math.ceil(3.1)) # 向上取整 4

random:生成伪随机数

python 复制代码
import random

print(random.random())       # 0到1之间的浮点数
print(random.randint(1, 10)) # 1到10之间的随机整数(含10)
fruits = ["苹果", "香蕉", "橙子"]
print(random.choice(fruits)) # 随机选一个

items = [1, 2, 3, 4, 5]
random.shuffle(items)        # 打乱列表顺序

3. 数据交换格式:json

JSON 是互联网最通用的数据格式。Python 字典与 JSON 字符串的转换非常简单。

python 复制代码
import json

data = {"name": "Jojo", "age": 25, "is_admin": False}

# 1. 编码:字典 -> JSON 字符串 (dumps)
json_str = json.dumps(data, indent=4) # indent让输出更漂亮

# 2. 解码:JSON 字符串 -> 字典 (loads)
parsed_data = json.loads(json_str)

# 3. 处理文件 (dump/load)
with open("config.json", "w") as f:
    json.dump(data, f) # 直接写入文件

4. 系统接口与参数:sys

主要用于与 Python 解释器和系统环境交互。

python 复制代码
import sys

# 1. 获取命令行参数 (常用语脚本传参)
# 运行命令: python script.py arg1 arg2
print(sys.argv) 

# 2. 退出程序
# sys.exit(0) # 0表示正常退出

# 3. 模块搜索路径
# print(sys.path) 

# 4. 查看系统平台
print(sys.platform) # win32, darwin(Mac), linux

5. 高级容器数据类型:collections

它是内置 list/dict/tuple 的增强版。

  • Counter: 快速计数器。
  • defaultdict: 带有默认值的字典(防止 KeyError)。
python 复制代码
from collections import Counter, defaultdict

# Counter 示例:统计词频
text = "apple banana apple orange apple banana"
counts = Counter(text.split())
print(counts) # Counter({'apple': 3, 'banana': 2, 'orange': 1})
print(counts.most_common(1)) # 获取出现次数最多的

# defaultdict 示例
d = defaultdict(int) # 默认值为 0
d["count"] += 1      # 不会报错,直接从0加到1

6. 正则表达式:re

用于复杂的文本搜索、替换和匹配。

python 复制代码
import re

text = "我的邮箱是 jojo_123@example.com,请联系我。"
# 匹配邮箱的简单正则
pattern = r'[a-zA-Z0-9_]+@[a-zA-Z0-9]+\.[a-zA-Z]+'

# 搜索
match = re.search(pattern, text)
if match:
    print(f"找到邮箱: {match.group()}")

# 替换
clean_text = re.sub(pattern, "[HIDDEN]", text)
print(clean_text)

🛠 什么时候该用哪个库?

需求 推荐库
处理文件路径、创建文件夹 os / pathlib
读取/写入 CSV 数据 csv
网络请求(标准库版) urllib.request(虽然大家更爱用第三方 requests
压缩和解压文件 zipfile / tarfile
计算代码执行时间 timeit
记录运行日志 logging

💡 总结建议

  1. 先查标准库:在准备自己写一个复杂的功能前,先搜索"Python standard library [功能名]",通常已经有现成的解决方案了。
  2. 避免重复造轮子 :比如 Counter 计数比你自己写 for 循环统计要快得多,也简洁得多。
  3. 阅读文档:Python 官方文档(docs.python.org)是学习这些库的最好地方。
相关推荐
Warson_L2 小时前
Python 函数的艺术 (Functions)
python
Warson_L2 小时前
Python 流程控制与逻辑
后端·python
long_songs2 小时前
手柄键盘映射器【github链接见文末 】
python·游戏·计算机外设·pygame·软件推荐·手柄映射键盘
必然秃头2 小时前
Python 环境安装及项目构建指南
python
Warson_L2 小时前
Python 四大组合数据类型 (Collection Types)
后端·python
廋到被风吹走2 小时前
【AI】Codex 多语言实测:Python/Java/JS/SQL 效果横评
java·人工智能·python
Warson_L3 小时前
Python 数据类型核心笔记
python
wefly20174 小时前
纯前端架构深度解析:jsontop.cn,JSON 格式化与全栈开发效率平台
java·前端·python·架构·正则表达式·json·php
胡耀超4 小时前
Token的八副面孔:为什么“词元“不需要更好的翻译,而需要更多的读者
大数据·人工智能·python·agent·token·代币·词元