python教程技术文章
-
Python subprocess 同时捕获 stdout 和 stderr 时,父进程若只读取一侧或先 wait 可能因管道写满而卡住。本文用 communicate 收集双流,并说明 TimeoutExpired 后 kill 与再次 communicate 的安全收尾方式。459 收藏 -
用 pathlib 和 os.path.commonpath 校验 ZIP 成员路径,结合文件类型、成员数量和解压后大小限制,写出可处理不可信压缩包的 Python zipfile 解压方案。449 收藏 -
Python subprocess 文本输出出现 bytes、中文乱码或空结果时,重点检查 text、encoding、errors、stdout、stderr 和 returncode 的边界,并给出可直接改造的排查示例。444 收藏 -
文章 · python教程 | 5天前 | 异步编程 · Python教程 · 超时处理 · 任务取消 · Python asyncio CancelledError TaskGroup wait_for shield
asyncio.wait_for 超时后,底层任务看起来还在运行,通常不是超时失效,而是任务正在响应取消并执行 finally 清理,或者被 asyncio.shield 有意保护。本文用最小实验区分取消、清理、保护和 TaskGroup 的边界。441 收藏 -
Python csv.DictReader 遇到数据行缺列时默认用 restval 补齐。本文从表头、分隔符、编码和 newline 入手排查,并说明 restval、restkey、fieldnames 与必填字段校验的边界。434 收藏 -
使用 Python zipfile 处理不可信 ZIP 时,先读取 ZipInfo 元数据,检查路径穿越、文件数量、总未压缩大小和压缩比,再把通过筛选的成员交给解压逻辑。432 收藏 -
Python sqlite3 使用 :name 这类命名占位符时应传字典。本文解释 Python 3.14 的行为变化,并给出 execute、executemany 和回归检查的迁移写法。430 收藏 -
Python dataclasses.replace 会按原类型创建新实例,适合更新 frozen dataclass。本文说明字段覆盖、__post_init__、InitVar、init=False 和嵌套可变字段的实际边界。428 收藏 -
文章 · python教程 | 4天前 | 命令行工具 · 子命令 · Python教程 · argparse · Python argparse 子命令 argparse subparsers 公共参数
argparse 多子命令 CLI 中,公共参数可以先集中定义在 add_help=False 的父解析器,再通过 parents 传给每个子命令。本文用一个原创备份工具示例说明参数位置、-h 冲突、Namespace 合并和初始化顺序。427 收藏 -
文章 · python教程 | 2天前 | 字符串处理 · Python教程 · Python 3.14 · 安全渲染 · Python 模板解析 Python 3.14 t-string string.templatelib template string
Python 3.14 的 template string(t-string)不会立即合并成普通字符串,而是保留静态片段和插值对象。本文从 f-string 迁移出发,演示如何用白名单、HTML 转义和显式格式处理构建受控模板解析器,并说明它与 SQL 参数化的边界。418 收藏 -
ExitStack 的关键不是设置参数,而是在资源获取后登记清理动作。本文说明 enter_context、callback、push、pop_all 的区别,并按生命周期排查资源未关闭、清理顺序错误、栈复用和异步混用问题。411 收藏 -
用 Python typing.TypeIs 编写类型谓词,理解真分支取交集、假分支排除目标类型的规则,并判断哪些列表场景仍应保留 TypeGuard。396 收藏 -
讲清 Python tarfile 解压前如何检查成员路径,拒绝绝对路径、..、盘符路径和链接,并用 filter=data 与临时目录降低越界写入风险。394 收藏 -
同一个 Python logger 同时输出控制台和审计日志时,handler 级 Filter 可以返回 LogRecord 副本,只给目标 handler 增加字段,避免污染其他输出。391 收藏 -
Python functools.lru_cache 报 unhashable type list 时,根因是可变参数不能参与缓存键。本文解释哈希边界,并用 tuple、排序后的 tuple、frozenset 和包装函数完成稳定缓存。388 收藏