python教程技术文章
-
Python sqlite3 的 autocommit 要先选清自动提交、显式事务或旧式 isolation_level。本文用连接参数、in_transaction 和重连验证排查提交回滚问题,并给出 Python 3.11 及更早版本的兼容写法。488 收藏 -
Python 的 cache 与 lru_cache 不是同一种容量策略:前者等价于无限缓存,后者可用 maxsize 限制容量。本文用配置示例和 cache_info 排查命中率、键参数与失效边界。377 收藏 -
讲清 Python enum.StrEnum 的显式值、auto()、.value、str()、JSON 序列化和旧版本兼容排查方法。298 收藏 -
用 dataclasses.replace 修改 Python dataclass 时,按字段声明、InitVar、init=False 和 __post_init__ 的边界排查常见 TypeError 与 ValueError,并掌握返回新对象的正确写法。282 收藏 -
ExitStack 的关键不是设置参数,而是在资源获取后登记清理动作。本文说明 enter_context、callback、push、pop_all 的区别,并按生命周期排查资源未关闭、清理顺序错误、栈复用和异步混用问题。411 收藏 -
用 asyncio.timeout、wait_for 和 wait 处理 Python 异步超时:厘清作用域、取消、TimeoutError、shield 以及 done/pending 的差异,快速定位超时语义问题。365 收藏 -
排查 asyncio TaskGroup 失败时,区分 ExceptionGroup、兄弟任务取消和清理阻塞,使用 except* 分类处理,并正确传播 CancelledError。231 收藏 -
跨平台使用 pathlib 读写文本时,显式设置 encoding,结合 BOM、原始字节和 errors 策略排查乱码与 UnicodeDecodeError,并保持读取和写回的编码契约。235 收藏 -
用 importlib.resources.files 读取包内模板,说明 Traversable、as_file、压缩包资源和打包配置之间的边界。244 收藏 -
文章 · python教程 | 4星期前 | Python教程 · 进程管理 · Python subprocess.Popen Python实时读取标准输出 Python子进程管道堵塞 Python进程管理
用 subprocess.Popen 实时读取子进程输出时,不能只盯着 stdout;同时消费 stderr、让子进程及时 flush,并在退出后回收线程,才能避免管道堵塞和日志丢失。492 收藏 -
用 Python logging 的 QueueHandler 和 QueueListener 把慢速日志输出移到独立线程,并说明级别、队列满载、prepare 与退出 stop 的关键边界。165 收藏 -
csv.DictReader 遇到缺失列时不会自动替业务规则报错。本文用一个订单 CSV 导入器区分缺失列、缺失值和多余列,并给出带文件名、行号和字段名的 Python 错误处理代码。286 收藏 -
讲清 Python tarfile 解压前如何检查成员路径,拒绝绝对路径、..、盘符路径和链接,并用 filter=data 与临时目录降低越界写入风险。394 收藏 -
用 Python typing.TypeIs 编写类型谓词,理解真分支取交集、假分支排除目标类型的规则,并判断哪些列表场景仍应保留 TypeGuard。396 收藏 -
用 Python ContextVar 在 asyncio 异步任务间传递 request_id,讲清 set、get、reset、create_task 上下文复制、copy_context 和日志排查边界。335 收藏