python教程技术文章
-
使用 Python 标准库 tomllib 解析 TOML 时,重复键会触发 TOMLDecodeError。本文说明如何通过异常位置定位冲突、修复表路径中的重复定义,并封装稳定的读取诊断。452 收藏 -
用 decimal.Context.create_decimal_from_float 把 float 转成受控精度的 Decimal,比较 ROUND_DOWN、Inexact 陷阱与字符串输入的差异。451 收藏 -
Python mailbox.mbox 修改后,flush 负责把待处理变更写入文件,unlock 负责释放排他锁,二者不是同一个动作。本文用一个带异常收尾的示例解释修改、落盘、解锁和 close 的关系。450 收藏 -
用 pathlib 和 os.path.commonpath 校验 ZIP 成员路径,结合文件类型、成员数量和解压后大小限制,写出可处理不可信压缩包的 Python zipfile 解压方案。449 收藏 -
用一个三项独立任务的汇总脚本说明 asyncio.gather 的异常返回模式,区分成功值、普通异常与子任务取消,并解释输入顺序、调用方取消传播和服务集成边界。449 收藏 -
Python 3.14 的解释器池用多个独立解释器获得真正的多核并行,但任务函数、参数和返回值都要经过序列化,解释器之间也不能直接共享可变对象。本文用 CPU 计算与故障任务拆开说明通信边界、异常处理和上线前验收方法。447 收藏 -
用一个可运行的 asyncio 示例说明 TaskGroup 的异常传播、兄弟任务取消和部分结果保留方式,帮助 Python 服务避免并发任务失败后状态失控。446 收藏 -
typing.TypeIs 用于标注用户自定义类型谓词:True 分支把原类型与目标类型取交集,False 分支排除目标类型。本文说明输入兼容边界,并对比何时使用 TypeGuard。446 收藏 -
Python sqlite3.Connection.blobopen 可以按行打开 SQLite 的 BLOB 字段。本文从固定长度约束、Blob.read/write/seek 到事务提交和异常收尾,给出一个可运行的大字段更新示例。444 收藏 -
Python 3.14 的 pathlib.Path.info 能复用文件类型信息,尤其适合 Path.iterdir() 后的批量判断;但它是缓存,不是实时状态。本文用目录扫描、文件变更和刷新 Path 三个场景说明怎么用、何时改回 is_dir/is_file,以及跨版本如何兼容。444 收藏 -
Python subprocess 文本输出出现 bytes、中文乱码或空结果时,重点检查 text、encoding、errors、stdout、stderr 和 returncode 的边界,并给出可直接改造的排查示例。444 收藏 -
使用 Python argparse 的 add_subparsers 和 add_parser 拆分 list、create 等子命令,再用 set_defaults 绑定处理函数,解决参数归属和命令派发问题。443 收藏 -
当资源数量运行时才确定时,contextlib.ExitStack 可以把文件、锁和临时清理动作按进入顺序登记,并在退出时逆序回收。本文从一个批量读取小项目出发,说明 enter_context、callback 和异常路径的配合方式。441 收藏 -
asyncio.wait_for 超时后,底层任务看起来还在运行,通常不是超时失效,而是任务正在响应取消并执行 finally 清理,或者被 asyncio.shield 有意保护。本文用最小实验区分取消、清理、保护和 TaskGroup 的边界。441 收藏 -
通过带初始化校验的冻结数据类示例,说明dataclasses.replace如何构造同类型新对象,解释返回值、init=False、InitVar以及嵌套列表共享的限制。441 收藏