python教程技术文章
-
Python logging 同一条日志打印两遍,通常不是 log() 调用了两次,而是子 logger 和 root logger 都挂了 Handler,记录又沿层级传播。本文给出定位清单和两种单一责任点的修复方式。144 收藏 -
Python pathlib 处理相对路径时,应先固定根目录,再用 resolve 消除点段并解析符号链接,完成范围判断后再检查普通文件。本文给出可保留缺失、权限、越界和文件类型错误的运行手册。144 收藏 -
本文说明 Python asyncio.as_completed 如何按完成顺序消费任务结果,并处理异常、超时、任务身份和剩余任务清理。144 收藏 -
Python 3.13 移除了标准库 aifc。迁移旧 AIFF/AIFC 读取代码时,先确认容器、压缩编码、采样参数和元数据需求,再选择 standard-aifc、soundfile 或转成统一 PCM 的路径。144 收藏 -
介绍 Python mimetypes.add_type() 注册自定义音频扩展名的方法,说明 strict 参数、guess_type() 的 type 与 encoding 返回值,以及如何在上传和响应处理中集中初始化。144 收藏 -
Python csv.DictReader 读取列数不稳定的 CSV 时,可以用 restkey 接住多余字段,用 restval 区分缺失字段,再结合行号和异常归档策略决定放行或拒绝。143 收藏 -
Python 包被压缩为 zip 后,使用 importlib.resources.files() 返回 Traversable,直接读取文本或二进制资源;只有下游 API 强制要求真实路径时,才用 as_file() 在上下文内临时获取 pathlib.Path。143 收藏 -
QueueListener 的关键不是把日志放进队列,而是退出时保持正确顺序:先停止业务线程继续产生日志,再调用 stop() 发送停止信号并等待监听线程结束,最后刷新和关闭 Handler。本文给出最小写法、关闭边界和异常兜底。143 收藏 -
Python contextvars 可以用 copy_context() 复制当前上下文,再用 Context.run() 让回调在副本中读取和修改 ContextVar。本文说明上下文隔离、外层恢复、空 Context、重复进入和异常传播等边界。143 收藏 -
pathlib.glob 的 ** 会递归进入隐藏目录。本文用 Path.parts 过滤任意层级的隐藏目录,再补上文件类型、排序和符号链接边界,给出可复用的 Python 遍历函数。142 收藏 -
Python itertools.batched 默认会保留末尾不足 n 个元素的短元组;如果业务必须整组处理,可以使用 Python 3.13 引入的 strict=True,让不完整尾组直接抛出 ValueError。141 收藏 -
Python 日志重复打印通常不是 logger 调用了两次,而是同一条记录沿父子层级交给多个 handler。本文用最小示例拆开 propagate、handler 和配置初始化顺序,给出可复现的排查与修复方法。139 收藏 -
PyArrow compute.cast 默认使用安全转换,遇到整数溢出或其他不安全转换会保留错误。本文比较 safe=True、safe=False 与 CastOptions,说明如何只放开已知风险并避免把静默截断当成数据清洗。139 收藏 -
Python 3.15 的 profiling.sampling 同时支持 wall-clock 和 cpu 采样。本文从观测目标、命令组合和生产排障场景说明两种模式的取舍,并提醒统计采样、短脚本和版本匹配的边界。138 收藏 -
Python 的 shared_memory 共享数组,本质是共享一段字节缓冲区,再由各进程用同一名称和一致的 shape、dtype 重新映射。本文给出创建、附加、并发边界和资源清理方案。137 收藏