python教程技术文章
-
用 pathlib.Path.rglob 扫描项目文件时,如何跳过隐藏目录并保留需要的隐藏文件?本文从遍历结果、路径过滤和符号链接边界写出可验证的 Python 实现。181 收藏 -
当资源数量运行时才确定时,contextlib.ExitStack 可以把文件、锁和临时清理动作按进入顺序登记,并在退出时逆序回收。本文从一个批量读取小项目出发,说明 enter_context、callback 和异常路径的配合方式。441 收藏 -
文章 · python教程 | 3天前 | 跨平台 · python · utf-8 · pathlib · 文件编码 · encoding 跨平台 UTF-8 locale Python pathlib.Path.read_text
Path.read_text() 省略 encoding 时会沿用文本打开的默认编码,读取 UTF-8 中文文件可能在不同环境表现不同。本文用 pathlib.Path、encoding="utf-8"、errors="strict" 和 PYTHONWARNDEFAULTENCODING 验证边界。212 收藏 -
Python 的 functools.lru_cache 会保护缓存结构,但不会保证同一个冷键只计算一次。本文用并发时序拆解命中、未命中、重复计算和参数规范化边界,并给出可验收的使用方式。168 收藏 -
用一个可运行的 asyncio 示例说明 TaskGroup 的异常传播、兄弟任务取消和部分结果保留方式,帮助 Python 服务避免并发任务失败后状态失控。446 收藏 -
金额计算最怕精度和舍入规则藏在全局状态里。本文用 Python decimal.Context 固定局部精度,拆开量化、异常陷阱和线程上下文的边界,并给出可回归的验收样例。168 收藏 -
asyncio.timeout_at 用事件循环时钟表达绝对截止时间,适合把多个异步步骤放进同一时间预算。本文从最小写法出发,说明 TimeoutError 的捕获位置、取消语义、嵌套超时和 wait_for 的边界。230 收藏 -
QueueHandler 本身不会自动把日志变成安全的异步链路:如果它把记录送回监听同一队列的日志路径,就会出现递归、重复输出或队列持续增长。本文用最小示例拆开 QueueHandler、QueueListener 与 logger 层级的边界,给出可验证的安全配置。306 收藏 -
文章 · python教程 | 4天前 | 并发 · 消息队列 · 异步编程 · Python教程 · 性能稳定性 · Python 消费者 超时 Queue asyncio 哨兵 asyncio.Queue task_done
asyncio.Queue 的任务处理结束,不等于消费者协程会自动结束。本文用固定数量哨兵、task_done()、gather() 和 wait_for() 组成可验证的优雅停机流程,说明有界队列、异常回收与超时检查的边界。151 收藏 -
文章 · python教程 | 4天前 | 数据校验 · Python教程 · dataclasses · 类型标注 · Python 数据类 dataclasses InitVar __post_init__
dataclasses.InitVar 是只参与初始化、不保存为实例字段的伪字段。本文用配置参数注入和输入校验示例,说明它如何进入 __post_init__、为何不出现在 fields() 与 asdict() 中,以及序列化时应如何设计。147 收藏 -
文章 · python教程 | 4天前 | 日志 · 调试 · 异常处理 · python · 错误报告 异常链 Python traceback.TracebackException capture_locals
TracebackException 适合把异常捕获和展示解耦:保留异常链、按需捕获局部变量,再把结果限制在日志字段需要的范围。本文用紧凑示例说明 from_exception、format、chain、capture_locals 和敏感数据边界。179 收藏 -
Python 的无界缓存命中率可能很好,却把不断变化的参数组合留在进程里。本文用可复现实验比较 functools.cache 与 lru_cache(maxsize=None),并给出内存上限、清理和压测验收方法。391 收藏 -
文章 · python教程 | 4天前 | 日志 · python · 运维 · logging · RotatingFileHandler · 多进程日志 日志滚动 Python logging.handlers RotatingFileHandler 备份数量
Python 的 RotatingFileHandler 可以按文件大小切换日志文件,但 backupCount、encoding、delay 和多进程写入边界很容易被误配。本文从一个日志文件不断覆盖的现场出发,逐项验证滚动规则、备份数量和进程隔离问题。458 收藏 -
用 pathlib.Path.read_text() 读取配置文件很方便,但默认编码、换行统一和文件不存在等边界不能靠猜。本文从一个小型配置读取函数出发,说明编码如何显式声明、换行如何验收,以及何时应该改用二进制读取。345 收藏 -
文章 · python教程 | 4天前 | 日志 · 并发编程 · Python教程 · 运维排查 · 文件轮转 · Python 日志轮转 并发写入 logging.handlers.RotatingFileHandler maxBytes backupCount
Python 的 RotatingFileHandler 在多进程写日志时可能出现重复切分、备份文件互相覆盖或大小超限。本文从 maxBytes 与 backupCount 的触发语义出发,给出单进程验证、并发边界、收敛方案和上线检查清单。327 收藏