news 2026/7/7 10:14:15

【Python】基础语法入门(十五)——标准库精选:提升效率的内置工具箱

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Python】基础语法入门(十五)——标准库精选:提升效率的内置工具箱


🧰说明:Python 被称为“自带电池”(Batteries Included),其标准库提供了大量无需安装即可使用的模块。本篇精选8 个最常用、最实用的标准库模块,助你避免重复造轮子,写出更简洁、高效的代码。

你将学会如何用标准库轻松实现:

  • 日期时间处理(datetime
  • 随机数据生成(random
  • 路径与文件系统操作(pathlib/os
  • 数据序列化(json
  • 命令行参数解析(argparse
  • 正则表达式(re
  • 数学运算(math
  • 环境变量与系统信息(os/sys

1.datetime:日期与时间处理

常见任务

fromdatetimeimportdatetime,timedelta# 获取当前时间now=datetime.now()print(now)# 2025-12-11 17:30:45.123456# 格式化输出print(now.strftime("%Y-%m-%d %H:%M"))# 2025-12-11 17:30# 解析字符串为时间dt=datetime.strptime("2025-12-25","%Y-%m-%d")# 时间计算next_week=now+timedelta(days=7)print(next_week)

替代方案:复杂时区处理可用第三方库pytzzoneinfo(Python 3.9+ 内置)。


2.random:生成随机数据

常用函数

importrandom# 随机整数print(random.randint(1,10))# 1~10(含)# 随机选择colors=["红","绿","蓝"]print(random.choice(colors))# 随机选一个# 打乱列表cards=[1,2,3,4,5]random.shuffle(cards)print(cards)# 如 [3, 1, 5, 2, 4]# 随机抽样(不重复)print(random.sample(range(1,50),6))# 彩票号码

⚠️ 注意:random是伪随机,不适用于加密场景(用secrets模块)。


3.pathlib:面向对象的路径操作(推荐!)

Python 3.4+ 推荐使用pathlib替代os.path

frompathlibimportPath# 创建路径对象p=Path("data")/"input.txt"# 自动处理斜杠# 检查存在性ifp.exists():print("文件存在")# 读写文件(简化!)content=p.read_text(encoding="utf-8")p.write_text("Hello",encoding="utf-8")# 遍历目录forfileinPath("logs").glob("*.log"):print(file)# 获取父目录、文件名、后缀print(p.parent)# dataprint(p.name)# input.txtprint(p.suffix)# .txt

优势:跨平台、链式调用、代码更清晰。


4.json:数据序列化与交换

JSON 是 Web 和配置文件的通用格式。

importjson# Python 对象 → JSON 字符串data={"name":"Alice","age":30}json_str=json.dumps(data,ensure_ascii=False,indent=2)print(json_str)# JSON 字符串 → Python 对象obj=json.loads('{"score": 95}')# 读写文件withopen("config.json","w",encoding="utf-8")asf:json.dump(data,f,ensure_ascii=False,indent=2)withopen("config.json",encoding="utf-8")asf:config=json.load(f)

💡 提示:ensure_ascii=False支持中文,indent=2美化输出。


5.argparse:命令行参数解析

让你的脚本能接收命令行输入!

# save as: greet.pyimportargparse parser=argparse.ArgumentParser(description="打招呼程序")parser.add_argument("name",help="你的名字")parser.add_argument("-a","--age",type=int,default=18,help="年龄")parser.add_argument("--verbose",action="store_true",help="详细模式")args=parser.parse_args()ifargs.verbose:print(f"正在向{args.name}(年龄:{args.age}) 打招呼...")print(f"你好,{args.name}!")

运行:

python greet.py 小明 --age25--verbose# 输出:# 正在向 小明 (年龄: 25) 打招呼...# 你好, 小明!

sys.argv更强大、更用户友好


6.re:正则表达式(文本处理利器)

用于复杂文本匹配、提取、替换。

importre text="联系邮箱:admin@example.com 或 support@site.org"# 查找所有邮箱emails=re.findall(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b',text)print(emails)# ['admin@example.com', 'support@site.org']# 替换敏感信息masked=re.sub(r'\d{3}-\d{4}-\d{4}','***-****-****',"电话:138-1234-5678")print(masked)# 电话:***-****-****# 编译提高性能(多次使用时)pattern=re.compile(r'\d+')# 匹配数字numbers=pattern.findall("价格:100元,数量:5件")

🔍 正则虽强,但不要过度使用——简单任务用str.split()in更清晰。


7.math:数学函数

importmathprint(math.sqrt(16))# 4.0print(math.pi)# 3.141592653589793print(math.ceil(3.2))# 4(向上取整)print(math.floor(3.8))# 3(向下取整)print(math.log(10))# 自然对数

💡 科学计算建议用numpy,但小项目math足够。


8.ossys:系统交互

os:操作系统接口

importos# 环境变量home=os.getenv("HOME")# Linux/Mac# home = os.getenv("USERPROFILE") # Windows# 当前工作目录print(os.getcwd())# 列出目录内容files=os.listdir(".")

sys:Python 解释器相关

importsys# 命令行参数(原始)print(sys.argv)# ['script.py', 'arg1', 'arg2']# 退出程序sys.exit(1)# 非零表示错误# Python 版本print(sys.version_info)

✅ 现代替代:路径用pathlib,环境变量用os.getenv(),命令行用argparse


标准库使用原则

原则说明
优先使用标准库避免引入不必要的第三方依赖
查文档再编码官方文档:docs.python.org/3/library
组合使用pathlib+json读写配置文件
注意版本兼容pathlib需 Python 3.4+

综合案例:日志清理脚本

# cleanup_logs.pyfrompathlibimportPathimportargparsefromdatetimeimportdatetime,timedeltadefmain():parser=argparse.ArgumentParser()parser.add_argument("log_dir",help="日志目录")parser.add_argument("--days",type=int,default=30,help="保留天数")args=parser.parse_args()log_path=Path(args.log_dir)cutoff=datetime.now()-timedelta(days=args.days)forlog_fileinlog_path.glob("*.log"):iflog_file.stat().st_mtime<cutoff.timestamp():print(f"删除旧日志:{log_file}")log_file.unlink()# 删除文件if__name__=="__main__":main()

运行:

python cleanup_logs.py ./logs --days7

✅ 用到了:pathlibargparsedatetime


下一步建议

  1. 探索更多标准库
    • collectionsdefaultdict,Counter,namedtuple
    • itertools:高效迭代工具(已在第十二篇介绍)
    • functoolslru_cache,wraps
  2. 在项目中替换手写逻辑
    • json替代手动解析配置
    • pathlib替代字符串拼接路径
  3. 阅读官方标准库文档,每周学一个新模块

🐍“好的程序员知道标准库能做什么。”
善用标准库,是区分新手与熟手的重要标志!

继续前行,让 Python 的“电池”为你供电!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 21:01:14

智谱开源天团登陆 AtomGit,4 大模型覆盖多模态全场景!

智谱 AI 4 款多模态核心模型在 AtomGit 平台集中开源&#xff01;基于 Open-AutoGLM 、GLM-4.6V、GLM-ASR-Nano-2512、GLM-TTS 组成的模型矩阵&#xff0c;构建起 “手机操作 视觉理解 语音识别 文本转语音”的全链路多模态 AI 生态。这次开源不仅打破 “AI 只停留在聊天框”…

作者头像 李华
网站建设 2026/7/7 7:39:00

开源视频生成技术再突破:Wan2.1-FLF2V-14B模型实现720P高清流畅过渡

在人工智能生成内容&#xff08;AIGC&#xff09;领域&#xff0c;视频生成技术正经历着前所未有的快速发展。其中&#xff0c;首尾帧驱动的视频生成技术因其高效性和易用性&#xff0c;逐渐成为内容创作领域的新宠。近日&#xff0c;Wan团队正式发布了旗下最新力作——Wan2.1-…

作者头像 李华
网站建设 2026/7/7 15:56:50

教学辅助微信小程序设计毕业设计(源码+lw+部署文档+讲解等)

博主介绍&#xff1a;✌ 专注于VUE,小程序&#xff0c;安卓&#xff0c;Java,python,物联网专业&#xff0c;有18年开发经验&#xff0c;长年从事毕业指导&#xff0c;项目实战✌选取一个适合的毕业设计题目很重要。✌关注✌私信我✌具体的问题&#xff0c;我会尽力帮助你。一、…

作者头像 李华
网站建设 2026/7/6 7:39:00

【AUTOSAR AP Core】AUTOSAR AP核心:Executor角色揭秘

目录标题 1. Executor 在 AUTOSAR AP 中到底扮演什么角色? 1.1 从 “线程” 到 “执行上下文”:Core 的抽象视角 1.2 与 OS / Execution Management 的边界:谁管什么? 1.3 与 Future / Result / ErrorCode 的协同关系 2. 规范里的 Executor:需求与设计细节拆解 2.1 API 形…

作者头像 李华
网站建设 2026/7/4 17:42:22

Chrony时间同步服务:从底层原理到技术演进的全景解析

一、底层原理&#xff1a;时钟驯服算法的革命性突破 Chrony的核心突破在于其时钟驯服算法&#xff08;Clock Discipline Algorithm&#xff09;&#xff0c;该算法通过动态调整系统时钟频率实现亚秒级精度同步。其工作机制可分为三个关键层次&#xff1a; 1. 时钟偏差测量体系 …

作者头像 李华
网站建设 2026/7/5 23:16:44

线性回归与KNN算法的核心原理及实践应用

文章目录线性回归与KNN算法的核心原理及实践应用一、机器学习基础概念二、线性回归分析2.1 相关关系与回归分析2.2 一元线性回归模型2.3 误差项分析2.4 参数估计方法2.5 模型评价指标三、K-近邻算法&#xff08;KNN&#xff09;3.1 算法原理3.2 距离度量3.3 算法优缺点四、实践…

作者头像 李华