python教程技术文章
-
Python 3.14 的 free-threaded 构建可以让线程真正并行,但收益取决于任务类型、共享状态和第三方扩展。本文用可重复的基准测试拆解线程加速、锁竞争和自动启用 GIL 的回退边界。183 收藏 -
Python argparse 的子命令经常需要共享配置参数。本文用一个可运行的命令行示例说明父解析器、默认值、dest 命名和 help 输出之间的边界,并给出拆分与验收方法。464 收藏 -
Python 3.14 为 zipfile 增加 Zstandard 写入支持。本文从压缩级别、旧版本兼容和解压验收三个角度,给出一套可复现的 ZIP_ZSTANDARD 使用方式。295 收藏 -
Python sqlite3 中回滚失效,常见原因不是 rollback() 写错,而是提交时机、异常捕获范围和连接边界没有对齐。本文用订单写入示例拆开事务生命周期、异常复现、上下文管理器和嵌套调用的验收方法。387 收藏 -
读取几 GB 的 CSV 时,真正容易把内存推高的往往不是分块大小,而是类型推断、字符串列和失败行处理。本文用 pandas 分块读取与 Python 原生迭代两条路径,说明如何设定 dtype、逐块校验、隔离坏行并用峰值数据验收。392 收藏 -
Python 日志重复打印通常不是 logger 调用了两次,而是同一条记录沿父子层级交给多个 handler。本文用最小示例拆开 propagate、handler 和配置初始化顺序,给出可复现的排查与修复方法。139 收藏 -
读取 CSV 不只是选择一个库。本文从逐行清洗、表格分析和大文件扫描三个场景比较 Python csv、pandas.read_csv 与 polars.read_csv,说明类型推断、内存、坏行和后续查询边界,给出可核对的选型规则。484 收藏 -
Python 日志配置不只是把日志打印出来。本文对比 basicConfig、dictConfig 和分层输出,给出从本地脚本到多模块服务的选择边界、配置示例与验收方法。368 收藏 -
Python 日志文件已经完成轮转,旧文件却继续变大,通常不是轮转器失效,而是进程仍持有旧文件句柄或多个 handler 重复写入。本文用 WatchedFileHandler、RotatingFileHandler 和多进程场景拆开排查,并给出可复现的验收步骤。204 收藏 -
Python 定时任务被重复触发时,单靠进程是否存在并不可靠。本文从文件锁、任务状态和异常恢复三个层面,搭建一个可检查、可恢复且避免重复执行的定时任务骨架。357 收藏 -
Python logging 的 Filter 不只是返回 True 或 False。从 Python 3.12 起,挂在 Handler 上的过滤器可以返回替换后的 LogRecord,实现按输出目标改写字段而不污染其他 Handler。本文用 request_id 和脱敏字段拆开旧写法、新语义、并发边界与兼容处理。428 收藏 -
Python logging 的 QueueHandler 能把业务线程和日志写入解耦,但队列满、监听线程退出顺序不对时会出现丢日志。本文拆开背压处理、队列容量和优雅退出的边界,给出可复现的验收代码。473 收藏 -
文章 · python教程 | 4星期前 | 文件操作 · Python教程 · pathlib · 异常排查 · Python pathlib 文件迁移 跨文件系统 Path.rename EXDEV
Path.rename 在同一文件系统内很方便,但跨挂载点时可能收到 EXDEV。本文从异常现场入手,区分重命名与复制删除,给出保留元数据、避免半成品和可回滚的 Python 文件迁移写法。314 收藏 -
Python 3.14 把 Zstandard 支持带进标准库。本文用同一份数据对比内存压缩、文件读写和解压核对,说明压缩级别、可选模块与旧版本兼容边界。406 收藏 -
asyncio.TaskGroup 中一个子任务失败后,其他任务会被取消,但异常不会自动变成单个 Exception。本文用可复现实验拆开 ExceptionGroup、except* 与取消传播的关系,并给出重试边界。285 收藏