python教程技术文章
-
Python 相对路径默认以进程当前工作目录为起点,不是以脚本文件所在目录为起点。本文用 pathlib 区分 Path.cwd()、__file__ 和 resolve(),给出项目资源与用户输入的稳定路径写法及排查清单。126 收藏 -
从大文件生成器管道的三个常见故障入手,讲清同步按需拉取的背压边界、提前停止时的关闭级联,以及保留行号和原始原因的异常传播写法。126 收藏 -
multiprocessing.Queue 的 close() 不会立刻杀掉 feeder thread,它还要把缓冲数据刷入 pipe。本文解释 close、join_thread 与 cancel_join_thread 的边界,并给出避免进程退出卡住的关闭顺序。125 收藏 -
讲清 Python 3.13+ asyncio.Queue shutdown(False) 与 shutdown(True) 下 put、get、join 等待者的唤醒结果,以及消费者的安全收尾写法。124 收藏 -
Python 3.14 新增的 asyncio pstree 可以从任务树和 coroutine stack 定位未结束的 await 分支。本文用带任务名的 TaskGroup 示例说明如何取得 PID、读取 pstree、在 await 图循环时切换 ps,并整理平台与权限检查边界。120 收藏 -
从最小 dataclass(slots=True) 写法出发,说明固定字段布局、动态属性限制、继承重复字段、weakref_slot 与 fields() 的边界,给出迁移和验收清单。118 收藏 -
Python 的 bisect_left 和 bisect_right 分别找到重复分数的左、右插入点,两个下标组成左闭右开区间,直接切片即可得到全部匹配项。118 收藏 -
讲清 Python http.client 中 HTTPResponse 与 HTTPConnection 的关闭责任,给出完整读取、with 语句、异常收口和连接复用的实用模板。116 收藏 -
argparse 默认解析器遇到多个位置参数和选项交错时,参数归属容易让人误判。本文用 parse_intermixed_args 对比普通 parse_args,说明它的工作边界、子解析器限制和互斥组兼容性。114 收藏 -
用 dataclasses.field(default_factory=...) 为每个实例创建独立的列表、字典或集合默认值,避免可变对象共享并保留类型提示。114 收藏 -
Python tomllib 读取 TOML 时要区分 load 与 loads:磁盘文件使用 rb 模式交给 load,内存 bytes 可包装为 BytesIO,字符串才交给 loads。114 收藏 -
Python 的 zipfile.Path 适合在不解压的情况下浏览 ZIP 目录和读取文件,但它不会替调用者清理归档内的路径。本文用目录判断、文件读取和安全落盘三个场景,拆开 Path 的使用边界、路径遍历校验与 ZipFile.extractall 的差异。113 收藏 -
用 packaging.SpecifierSet.is_unsatisfiable 在依赖解析前识别确定无解的版本范围,同时说明预发布版本、通配符和完整解析器之间的边界。112 收藏 -
Python subprocess 超时不会自动终止子进程。本文按 POSIX 与 Windows 分开说明进程组建立、超时后的树级终止、管道回收和验证边界,给出可改造的 Popen 清理示例。108 收藏 -
csv.DictReader 遇到重复表头会发生字典键覆盖。本文用 csv.reader 按位置保留原始列,再生成唯一字段名,并说明 restkey、restval 的适用边界。107 收藏