Langchain系列文章目录
01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南
02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖
03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南
04-玩转 LangChain:从文档加载到高效问答系统构建的全程实战
05-玩转 LangChain:深度评估问答系统的三种高效方法(示例生成、手动评估与LLM辅助评估)
06-从 0 到 1 掌握 LangChain Agents:自定义工具 + LLM 打造智能工作流!
python系列文章目录
01-Python 基础语法入门:从变量到输入输出,零基础也能学会!
02-Python 流程控制终极指南:if-else 和 for-while深度解析
03-Python 列表与元组全攻略:从新手到高手的必备指南
04-Python 字典与集合:从入门到精通的全面解析
05-Python函数入门指南:从定义到应用
06-Python 函数高级特性:从默认参数到闭包的全面解析
07-Python 模块与包:从零到自定义的全面指南
08-Python异常处理:从入门到精通的实用指南
09-Python 文件操作:从零基础到日志记录实战
10-Python面向对象编程入门:从类与对象到方法与属性
11-Python类的方法与属性:从入门到进阶的全面解析
12-Python继承与多态:提升代码复用与灵活性的关键技术
13-掌握Python魔法方法:如何用__add__和__len__自定义类的行为
14-python面向对象编程总结:从基础到进阶的 OOP 核心思想与设计技巧
15-掌握 Python 高级特性:深入理解迭代器与生成器
16-用 Python 装饰器提升效率:日志与权限验证案例
17-再也不怕资源泄漏!Python 上下文管理器,with语句全攻略
18-Python 标准库必备模块:math、random、os、json 全解析
前言
今天咱们要聊聊 Python 标准库这个宝藏——它就像 Python 自带的一个超级工具箱,里面装满了各种实用模块,能帮你轻松搞定数学计算、文件操作、数据处理等任务。不管你是刚入门的小白,还是有点经验的进阶玩家,这篇文章都会带你从基础到深入,全面了解 Python 标准库的常用模块。咱们会重点聊聊 math
、random
、datetime
这些日常必备工具,os
、shutil
文件操作神器,还有 json
、pickle
数据序列化模块。文章会尽量通俗易懂,配上代码示例和实际应用场景,让你看完就能上手用起来!
一、常用标准库模块
Python 标准库里有很多模块,咱们先从最常用的几个入手——math
、random
和 datetime
。这几个模块简单实用,几乎每个项目都能派上用场。
1.1 math
模块
math
模块是 Python 的数学小助手,提供了各种数学函数和常量,适合计算圆面积、角度转换这类任务。
1.1.1 核心功能与代码示例
- 基本运算:想算平方根?用
sqrt()
;幂运算?用pow()
;绝对值?用abs()
。 - 三角函数:
sin()
、cos()
、tan()
,搞定角度计算。 - 常量:
pi
(圆周率)和e
(自然常数),直接拿来用。
看看代码怎么玩:
import math
# 计算平方根
print(math.sqrt(25)) # 输出: 5.0
# 用 π 计算圆面积
radius = 3
area = math.pi * radius ** 2
print(f"圆面积: {area:.2f}") # 输出: 圆面积: 28.27
1.1.2 应用场景与注意事项
- 场景:科学计算、数据分析,或者简单算个几何问题,都能用上。
- 注意:输入输出都是浮点数。如果涉及复数,记得切换到
cmath
模块哦。
1.2 random
模块
random
模块是随机数的生成器,适合模拟游戏里的抽奖、随机事件啥的。
1.2.1 核心功能与代码示例
- 随机整数:
randint(a, b)
,生成 a 到 b 之间的整数。 - 随机浮点数:
random()
,返回 0 到 1 的小数。 - 随机挑选:
choice(seq)
,从列表里随便挑一个。 - 打乱顺序:
shuffle(seq)
,把列表顺序洗牌。
代码示例:
import random
# 随机生成 1-10 的整数
print(random.randint(1, 10)) # 比如: 7
# 从列表里挑一个
fruits = ["apple", "banana", "orange"]
print(random.choice(fruits)) # 比如: banana
# 打乱列表
random.shuffle(fruits)
print(fruits) # 比如: ['orange', 'apple', 'banana']
1.2.2 应用场景与注意事项
- 场景:游戏开发、测试数据生成、随机模拟。
- 注意:它是伪随机,基于种子值。如果想要可重复的结果,可以用
random.seed(固定值)
。安全性高的场景(比如密码),建议用secrets
模块。
1.3 datetime
模块
datetime
模块是时间和日期的专家,日志记录、时间戳都靠它。
1.3.1 核心功能与代码示例
- 当前时间:
datetime.now()
获取此刻时间。 - 格式化:
strftime()
把时间变成想要的字符串格式。 - 时间差:直接用减法算时间间隔。
代码演示:
from datetime import datetime
# 获取当前时间
now = datetime.now()
print(now) # 比如: 2023-10-19 15:30:45.123456
# 格式化时间
print(now.strftime("%Y-%m-%d %H:%M")) # 输出: 2023-10-19 15:30
# 计算时间差
start = datetime(2023, 1, 1)
days_passed = now - start
print(f"今年过去了 {days_passed.days} 天") # 比如: 今年过去了 292 天
1.3.2 应用场景与注意事项
- 场景:日志、定时任务、时间统计。
- 注意:时间对象不可变,想处理时区得用
pytz
库。
二、文件处理模块
文件操作是开发中绕不开的话题,os
和 shutil
是 Python 提供的两大神器。
2.1 os
模块
os
模块让你跟操作系统打交道,文件管理、路径操作都行。
2.1.1 核心功能与代码示例
- 目录操作:
os.listdir()
列文件,os.mkdir()
创建文件夹。 - 路径处理:
os.path.join()
拼接路径,os.path.exists()
检查文件存不存在。
代码示例:
import os
# 当前目录
print(os.getcwd()) # 比如: /home/user/project
# 列出文件
print(os.listdir(".")) # 比如: ['file1.txt', 'folder']
# 创建文件夹
os.mkdir("test_dir")
2.1.2 应用场景与注意事项
- 场景:文件批量管理、脚本自动化。
- 注意:路径用
os.path
处理,避免跨平台问题;操作前检查权限。
2.2 shutil
模块
shutil
是 os
的升级版,适合更复杂文件操作。
2.2.1 核心功能与代码示例
- 复制:
shutil.copy()
复制文件。 - 移动:
shutil.move()
移动文件或文件夹。 - 删除:
shutil.rmtree()
删除整个目录。
代码示例:
import shutil
# 复制文件
shutil.copy("source.txt", "dest.txt")
# 移动文件夹
shutil.move("old_dir", "new_dir")
# 删除目录
shutil.rmtree("temp_dir")
2.2.2 应用场景与注意事项
- 场景:备份文件、清理临时目录。
- 注意:
rmtree
删除不可逆,操作前确认好目标。
三、数据序列化模块
数据存取是开发中常见需求,json
和 pickle
是两大主力。
3.1 json
模块
json
是轻量级数据交换格式,跨语言支持好。
3.1.1 核心功能与代码示例
- 序列化:
json.dumps()
把字典转成 JSON 字符串。 - 反序列化:
json.loads()
把 JSON 转回 Python 对象。 - 文件操作:
json.dump()
写文件,json.load()
读文件。
代码示例:
import json
# 字典转 JSON
data = {"name": "小明", "age": 18}
json_str = json.dumps(data)
print(json_str) # 输出: {"name": "小明", "age": 18}
# JSON 转字典
parsed = json.loads(json_str)
print(parsed) # 输出: {'name': '小明', 'age': 18}
# 写文件
with open("data.json", "w") as f:
json.dump(data, f)
3.1.2 应用场景与注意事项
- 场景:API 数据交互、配置文件。
- 注意:只支持基本类型(列表、字典等),键必须是字符串。
3.2 pickle
模块
pickle
是 Python 专属的序列化工具,支持复杂对象。
3.2.1 核心功能与代码示例
- 序列化:
pickle.dumps()
转字节流。 - 反序列化:
pickle.loads()
还原对象。 - 文件操作:
pickle.dump()
和pickle.load()
。
代码示例:
import pickle
# 序列化复杂对象
data = {"name": "小红", "scores": [90, 85]}
serialized = pickle.dumps(data)
print(serialized) # 一堆字节流
# 反序列化
parsed = pickle.loads(serialized)
print(parsed) # 输出: {'name': '小红', 'scores': [90, 85]}
# 写文件
with open("data.pkl", "wb") as f:
pickle.dump(data, f)
3.2.2 应用场景与注意事项
- 场景:保存模型参数、缓存数据。
- 注意:仅限 Python 使用,不安全的数据源别随便
load
。
四、总结
看完这篇你是不是觉得 Python 标准库真是个宝藏?从 math
、random
、datetime
的日常小工具,到 os
、shutil
的文件操作,再到 json
、pickle
的数据处理,这些模块能帮你解决开发中的各种问题。希望你能动手试试这些代码,把它们用在自己的项目里,效率蹭蹭往上涨!