python教程技术文章
-
从字节流、前两行读取边界和 BOM/编码声明冲突三个角度,说明 Python tokenize.detect_encoding 如何识别源文件编码,并给出 tokenize.open 的使用边界。235 收藏 -
Python mailbox.mbox 修改后,flush 负责把待处理变更写入文件,unlock 负责释放排他锁,二者不是同一个动作。本文用一个带异常收尾的示例解释修改、落盘、解锁和 close 的关系。450 收藏 -
本文说明 Python tabnanny 如何扫描文件或目录中的混合缩进,解释 indent not equal 与 indent not greater 的区别,并给出显示空白、统一缩进和 py_compile 验证的完整排查流程。166 收藏 -
Python mailbox.Maildir 的 new/cur 目录位置与 S 已读标记应分开判断。本文给出只读扫描和单封标为已读的示例,解释 cur 未必已读、对象修改需写回,以及实验 info 和并发统计的限制。343 收藏 -
Python sched 取消尚未触发的定时事件,需要保存 scheduler.enter 或 enterabs 返回的事件对象,再交给同一个调度器的 cancel;事件不在队列时会抛出 ValueError。本文说明事件句柄、重复取消和业务任务映射的处理方式。132 收藏 -
Python sched.scheduler 默认会在 run() 中等待下一个事件;改用 run(blocking=False) 后,它只处理已经到期的事件,并返回下个事件距离当前时钟的时间差。本文说明如何把这个返回值交给外层轮询,同时处理空队列、取消事件和慢回调。164 收藏 -
Python cmd.Cmd 的 precmd 在命令分发前改写输入,postcmd 在命令执行后接管 stop 标志。本文用一个最小命令解释器说明别名、计数和退出条件应该放在哪里。236 收藏 -
Python cmd.Cmd 可通过 complete_inspect 为指定命令提供参数候选。本文用只读任务控制台解释参数位置、空前缀、共享词表与执行判断,并说明 readline 环境和引号输入的限制。182 收藏 -
Python 3.12 起可以用 sqlite3.Connection.setconfig() 设置布尔型 SQLite DBCONFIG 选项,再用 getconfig() 读取当前连接状态。本文以外键配置为例,说明调用方式、版本与底层 SQLite 能力边界,以及生产初始化策略。283 收藏 -
Python textwrap.dedent 只能移除每行共有的前导空白。制表符和空格虽然都属于空白,却不是相同的前缀字符;本文用混合缩进示例解释现象,并给出先统一制表符再去公共缩进的安全边界。154 收藏 -
通过带初始化校验的冻结数据类示例,说明dataclasses.replace如何构造同类型新对象,解释返回值、init=False、InitVar以及嵌套列表共享的限制。441 收藏 -
Python statistics.fmean 会先把输入转为 float,再计算算术平均,并始终返回浮点数。本文说明普通平均、加权平均、空数据、权重长度和混合数值类型的处理边界。377 收藏 -
Python 的 re.fullmatch 会要求整个输入字符串都符合模式,适合解决 re.match 或 re.search 意外放过前缀、片段的问题。本文对比三种入口,说明换行、尾部字符与 None 判断的边界。208 收藏 -
使用 Python 标准库 tomllib 解析 TOML 时,重复键会触发 TOMLDecodeError。本文说明如何通过异常位置定位冲突、修复表路径中的重复定义,并封装稳定的读取诊断。452 收藏 -
围绕 Python sqlite3 讲清 autocommit、isolation_level、executescript 和 commit/rollback 的边界,帮助写入逻辑避免意外提交。391 收藏