python教程技术文章
-
Python 生成器提前停止时,close() 会通过 GeneratorExit 触发 finally。本文用可复现代码说明未启动、已暂停、清理分支和回归测试的边界,帮助稳定释放文件等资源。485 收藏 -
读取 CSV 不只是选择一个库。本文从逐行清洗、表格分析和大文件扫描三个场景比较 Python csv、pandas.read_csv 与 polars.read_csv,说明类型推断、内存、坏行和后续查询边界,给出可核对的选型规则。484 收藏 -
Python queue.Queue 的 join() 卡住,通常不是队列里还有元素,而是消费者取走任务后少调用了 task_done()。本文解释未完成计数,给出 finally 配对写法、异常处理和停机复查清单。484 收藏 -
文章 · python教程 | 4星期前 | 并发 · 线程池 · python · Python 队列 超时 背压 concurrent.threading_pool ThreadPoolManager 任务洪峰
ThreadPoolManager 常见误区是“把任务都扔进去”,但当 submit 激增时会出现排队膨胀、内存抖动和超时误判。本文给出可落地的限流策略。481 收藏 -
文章 · python教程 | 3星期前 | 日志 · 标准库 · python · Python logging BufferingFormatter BufferingHandler MemoryHandler
用 Python logging.BufferingHandler 和 BufferingFormatter 把多条日志组成可读批次,讲清 shouldFlush、flush、header/footer 与关闭时的边界。481 收藏 -
Python Decimal 与 float 不能直接做算术运算时,先定位混用边界,再从字符串统一转换为 Decimal,并用 quantize 固定金额小数位。480 收藏 -
Python sqlite3 默认返回 tuple。本文用 sqlite3.Row 和自定义 dict_factory 演示如何按命名字段读取查询结果,并说明连接级配置、列别名和已有游标的边界。480 收藏 -
Python dataclasses 使用 list、dict 等可变默认值时,必须用 field(default_factory=...) 为每个实例创建独立对象。本文用配置示例验证共享问题、嵌套工厂和迁移检查点。479 收藏 -
用一个最小 requests 配方解决 HTTP 请求卡住、慢接口无响应和偶发 5xx 问题:分开设置连接/读取超时,用 Session 统一重试,再封装业务请求函数。478 收藏 -
TaskGroup 中一个任务失败后,其他任务会被取消并等待收尾;本文用代码说明 CancelledError、ExceptionGroup 与 asyncio.timeout 的边界。475 收藏 -
文章 · python教程 | 3星期前 | 日志 · python · Python QueueListener multiprocessing.Queue logging.QueueHandler
用 QueueHandler 把多进程日志交给 QueueListener 统一写出,重点处理 Queue 的关闭顺序、join_thread 阻塞和日志丢失排查。474 收藏 -
Python 批量处理文件时,进度输出不能只追求好看:交互终端需要实时进度,CI 和重定向日志需要稳定文本,Ctrl+C 则要留下可恢复的检查点。本文用标准库实现 TTY 检测、节流输出、SIGINT 安全取消和断点续跑。473 收藏 -
Python logging 的 QueueHandler 能把业务线程和日志写入解耦,但队列满、监听线程退出顺序不对时会出现丢日志。本文拆开背压处理、队列容量和优雅退出的边界,给出可复现的验收代码。473 收藏 -
Python 3.14 会在 return、break 或 continue 让控制流离开 finally 时发出 SyntaxWarning。本文复现异常被吞掉的旧写法,解释清理代码与返回值的边界,并给出兼容迁移和 CI 检查清单。471 收藏 -
Python 日志重复输出通常来自子 logger 与 root logger 同时处理同一条 LogRecord。本文用 logger 拓扑、handler 归属和 LoggerAdapter 上下文三个维度,给出可执行的排查与配置选择方法。471 收藏