python教程技术文章
-
TaskGroup 中一个任务失败后,其他任务会被取消并等待收尾;本文用代码说明 CancelledError、ExceptionGroup 与 asyncio.timeout 的边界。475 收藏 -
Path.iterdir() 遇到 PermissionError 时,不要把异常包在整棵扫描树外层;按目录捕获 OSError,记录跳过路径,再用 is_dir() 和 is_file() 区分结果,扫描就能继续且可追踪。468 收藏 -
Python pathlib 拼接用户路径时,绝对路径段会让前面的基目录失效。本文对比 / 与 joinpath(),说明如何先判断相对路径,再用 resolve()、relative_to() 和 is_file() 检查目录边界与文件类型。286 收藏 -
切换 Python 3.14 free-threaded 构建前,按解释器状态、wheel 标签、模块声明、C API 并发风险和 PYTHON_GIL=0 回归测试检查扩展兼容性。270 收藏 -
spawn 会用全新 Python 解释器导入入口模块,因此进程创建必须放进 main 保护。本文用最小示例解释导入边界、可 pickle 要求和稳定检查方法。488 收藏 -
Python typing.Protocol 适合把第三方对象需要满足的最小接口写成结构化类型,不要求对方继承本地基类。本文用存储适配场景说明 Protocol、runtime_checkable 与真正行为测试各自能保证什么。298 收藏 -
Python subprocess 同时捕获 stdout 和 stderr 时,父进程若只读取一侧或先 wait 可能因管道写满而卡住。本文用 communicate 收集双流,并说明 TimeoutExpired 后 kill 与再次 communicate 的安全收尾方式。459 收藏 -
文章 · python教程 | 1星期前 | 性能优化 · 多线程 · Python教程 · Python logging queue.Queue 后台线程 QueueHandler QueueListener
用 Python 标准库的 QueueHandler、queue.Queue 和 QueueListener,把日志输出移到后台线程,并处理有界队列、异常信息与退出时的队列刷新。174 收藏 -
Python zoneinfo 抛出 ZoneInfoNotFoundError 时,优先检查系统时区数据库和 tzdata 依赖,再处理 PYTHONTZPATH。本文给出 Windows、Linux 容器和自定义目录的部署清单。326 收藏 -
Python Decimal 与 float 不能直接做算术运算时,先定位混用边界,再从字符串统一转换为 Decimal,并用 quantize 固定金额小数位。480 收藏 -
解释 Python sqlite3 执行异常后为什么要 rollback,比较手动事务、with conn、autocommit 与 in_transaction,避免连接残留事务影响后续写入。152 收藏 -
使用 Python zipfile 处理不可信 ZIP 时,先读取 ZipInfo 元数据,检查路径穿越、文件数量、总未压缩大小和压缩比,再把通过筛选的成员交给解压逻辑。432 收藏 -
csv.DictReader 遇到重复表头会发生字典键覆盖。本文用 csv.reader 按位置保留原始列,再生成唯一字段名,并说明 restkey、restval 的适用边界。107 收藏 -
pathlib 的 Path.glob 和 glob.glob 对点号开头文件的处理规则不同。本文用原创示例说明如何匹配隐藏文件、递归扫描,以及按需排除隐藏目录。244 收藏 -
用 asyncio.Queue(maxsize) 控制生产者回压,配合 task_done、join 和 Python 3.13 的 shutdown,构建有界且能正常收尾的异步生产者消费者模型。330 收藏