python教程技术文章
-
Python datetime 的 fold=0 和 fold=1 可以区分夏令时回拨产生的两次相同本地时间。本文说明 ZoneInfo 的用法,以及比较、存储和春季 gap 的处理边界。230 收藏 -
用 Python decimal.quantize 处理金额时,先用 Decimal 字符串和 0.01 量子固定小数位,再按业务规则选择 ROUND_HALF_EVEN、ROUND_HALF_UP 或方向性舍入,避免把截断、中点取偶数和远离零混为一谈。306 收藏 -
Python csv.DictReader 读取列数不稳定的 CSV 时,可以用 restkey 接住多余字段,用 restval 区分缺失字段,再结合行号和异常归档策略决定放行或拒绝。143 收藏 -
用 pathlib 和 os.path.commonpath 校验 ZIP 成员路径,结合文件类型、成员数量和解压后大小限制,写出可处理不可信压缩包的 Python zipfile 解压方案。449 收藏 -
Python pathlib 的 Path.glob 和 Path.rglob 不会自动排除点号开头的隐藏目录。本文说明如何包含或排除隐藏路径,并比较结果过滤与 Path.walk 裁剪目录树的写法。207 收藏 -
Python re.finditer 默认只返回非重叠匹配。本文用 ababa 说明漏结果的原因,并给出正向先行断言和按起点扫描两种处理方式。193 收藏 -
dataclasses.field 的 default_factory 接收的是零参数可调用对象,应该写成 list,而不是已经创建好的 []。本文对比三种写法,解释报错位置,并用两个实例的内容和身份检查确认列表隔离。495 收藏 -
Python 3.15 同时引入了面向 free-threaded 构建的 abi3t。本文从兼容目标、Limited API、构建工具和 wheel 文件名四个角度,说明什么时候选 abi3.abi3t,什么时候必须单独构建 cp315t。331 收藏 -
Python typing.Annotated 的元数据默认会被 get_type_hints() 移除。本文演示如何用 include_extras=True 保留注解,并通过 get_origin、get_args、__origin__ 和 __metadata__ 读取基础类型与元数据。347 收藏 -
QueueListener 停止时不会凭空把队列清空,而是把停止哨兵放到队尾并等待监听线程结束。本文用一个小型文件日志项目演示正确的关闭顺序、验收方式和常见丢日志边界。496 收藏 -
argparse 多子命令 CLI 中,公共参数可以先集中定义在 add_help=False 的父解析器,再通过 parents 传给每个子命令。本文用一个原创备份工具示例说明参数位置、-h 冲突、Namespace 合并和初始化顺序。427 收藏 -
Python sqlite3 中 execute() 成功只代表 SQL 已执行,不代表事务已经提交。本文解释默认事务模式、isolation_level=None、Python 3.12+ autocommit 与 with 连接管理器的区别,并给出可直接排查提交边界的示例。163 收藏 -
asyncio.wait_for 超时并不等于任务立即消失:默认会取消被等待对象并等待取消完成。本文用 finally、shield 和 Task 引用说明如何保留清理机会,并区分取消任务与继续运行任务。469 收藏 -
asyncio.timeout 适合给一段包含多个 await 的工作设置总预算,asyncio.wait_for 适合限制单个 awaitable。本文比较两者的保护范围、取消对象、TimeoutError 捕获位置和清理延迟,给出异步请求中的选择示例。386 收藏 -
文章 · python教程 | 1星期前 | Windows · Python教程 · 文件系统 · Python Python 3.15 os.path.isreserved Windows 保留路径 ntpath
Python 3.15 推荐用 os.path.isreserved 判断 Windows 保留路径。本文解释 CON、尾随空格、冒号流等名称为何需要提前拒绝,并给出 Linux 或 macOS 生成 Windows 路径时使用 ntpath.isreserved 的跨平台写法。343 收藏