python教程技术文章
-
用 asyncio.timeout、wait_for 和 wait 处理 Python 异步超时:厘清作用域、取消、TimeoutError、shield 以及 done/pending 的差异,快速定位超时语义问题。365 收藏 -
Path.resolve() 和 Path.absolute() 都能得到绝对路径,但遇到软链接、不存在文件和 strict 参数时结果不同。本文用一个可复现的 pathlib 场景拆开两者的边界,并给出选择方法。362 收藏 -
文章 · python教程 | 1星期前 | 文件处理 · csv · Python教程 · 排错 · csv.Writer Python写CSV 多余空行 newline lineterminator
Python 使用 csv.writer 导出数据时,如果打开文件没有传 newline='',某些平台会把 CSV 自带的行结束符再次转换,表格软件看起来就像每条记录之间多了一行。本文从换行边界、lineterminator、字段内换行和排查方法说明如何稳定写出 CSV。361 收藏 -
Python 定时任务被重复触发时,单靠进程是否存在并不可靠。本文从文件锁、任务状态和异常恢复三个层面,搭建一个可检查、可恢复且避免重复执行的定时任务骨架。357 收藏 -
Python 的 tarfile 不是把归档直接解开就完事:本文用一个可运行的临时目录示例,拆解成员路径检查、data_filter、部分解压后的清理,以及 Python 3.12 到 3.14 的兼容写法。354 收藏 -
pathlib 和 os.path 都能处理 Python 文件路径,但适用边界并不一样。本文用配置目录、拼接、规范化和真实存在性检查四个场景比较两套 API,给出可落地的选型规则。353 收藏 -
GUDHI 默认仅对实际存在的拓扑特征输出同调信息;原始代码中未构造闭合环路,故无非平凡的一维同调类,导致维度 1 的结果不出现。需显式构建 1-单纯形闭链(如四边形循环)才能观测到 H₁ 的持久区间。 GUDHI 默认仅对实际存在的拓扑特征输出同调信息;原始代码中未构造闭合环路,故无非平凡的一维同352 收藏 -
文章 · python教程 | 2星期前 | 异常处理 · 资源管理 · 异步编程 · Python教程 · Python 回滚 aclose contextlib.AsyncExitStack 异步资源
异步服务在初始化数据库连接、临时目录或会话资源时,只要中途一步失败,前面已经成功创建的资源就必须可靠释放。本文用 contextlib.AsyncExitStack 拆开 enter_async_context、push_async_callback 与 aclose 的调用链,说明逆序清理、部分初始化失败和重复关闭的边界。352 收藏 -
Python 的 contextlib.chdir 可以把临时工作目录封装进 with 代码块,退出时自动恢复原目录。本文用批处理脚本演示异常恢复、嵌套调用和并发场景下的边界,说明什么时候应该改用 Path 参数而不是切换进程级 cwd。351 收藏 -
Python 3.13 为 asyncio.Queue 增加 shutdown() 与 QueueShutDown。本文用一个批处理队列案例,拆开生产者停止、消费者排空、join 完成和 immediate=True 强制终止的边界。351 收藏 -
用一个集合元素检查案例说明 Python typing.TypeGuard 的最小写法、真分支收窄规则、假分支边界,以及它与 TypeIs 和普通 bool 检查函数的区别。348 收藏 -
Python typing.Annotated 的元数据默认会被 get_type_hints() 移除。本文演示如何用 include_extras=True 保留注解,并通过 get_origin、get_args、__origin__ 和 __metadata__ 读取基础类型与元数据。347 收藏 -
Python decimal 的精度由 Context 控制。本文说明 Decimal 输入与运算精度的区别,并用 localcontext 和显式 Context 隔离局部计算,避免污染全局规则。346 收藏 -
当资源数量由配置或运行结果决定时,ExitStack 可以把文件、锁和回滚回调放进同一条可逆的清理链,并用 pop_all 保留成功结果。345 收藏 -
用 pathlib.Path.read_text() 读取配置文件很方便,但默认编码、换行统一和文件不存在等边界不能靠猜。本文从一个小型配置读取函数出发,说明编码如何显式声明、换行如何验收,以及何时应该改用二进制读取。345 收藏