python教程技术文章
-
Python mmap 修改文件后,先确认使用 ACCESS_WRITE 共享映射,再调用 mmap.flush;如果要求更强的崩溃持久性,再对同一个文件描述符调用 os.fsync。本文说明 ACCESS_COPY、缓冲文件、局部刷盘和关闭顺序的边界。415 收藏 -
Python socket 已设置 SO_REUSEADDR 仍绑定失败时,先区分 TIME_WAIT、活动监听、IPv4/IPv6 地址范围和 SO_REUSEPORT,再按正确顺序排查。154 收藏 -
使用 ThreadingHTTPServer 时,多个请求线程可能同时读改写共享字典,导致计数丢失或响应状态不一致。本文用基线指标、最小锁边界和快照模式给出可复现的处理方案。344 收藏 -
用 Python 处理查询参数时,quote_plus 会把空格编码为加号、把字面加号编码为 %2B;本文对比 quote、urlencode 和手写查询串的适用边界。453 收藏 -
json.loads 的整数限制和 JSON 文档大小限制不是一回事。本文用 parse_int 建立单个整数位数边界,再配合入口字节数检查,避免超大整数输入拖垮解析。212 收藏 -
Python zoneinfo 遇到夏令时回拨造成的重复小时,需要用 fold=0 和 fold=1 区分较早、较晚的瞬时点;从 UTC 转换时可让 zoneinfo 自动判断,并在接口或数据库中按需保存 UTC、IANA 时区名和 fold。102 收藏 -
解释 Python Fraction 接收 float 后出现长分数的原因,并对比字符串、Decimal、整数分子分母和 limit_denominator 的适用场景。411 收藏 -
Python decimal 的精度由 Context 控制。本文说明 Decimal 输入与运算精度的区别,并用 localcontext 和显式 Context 隔离局部计算,避免污染全局规则。346 收藏 -
Python re 的可选命名分组未参与匹配时默认返回 None,整体匹配失败则返回 None 的 Match。本文用 group、groupdict 和 fullmatch 讲清回溯后的读取方式,并区分缺失字段、空字符串与业务默认值。162 收藏 -
Python csv.DictReader 遇到数据行缺列时默认用 restval 补齐。本文从表头、分隔符、编码和 newline 入手排查,并说明 restval、restkey、fieldnames 与必填字段校验的边界。434 收藏 -
importlib.metadata 读取的是已安装 distribution 的版本元数据,不是源码目录里的模块版本。本文从 pyproject.toml 配置、解释器一致性、distribution 名称和 PackageNotFoundError 四个方面给出排查方法。287 收藏 -
Python subprocess 文本输出出现 bytes、中文乱码或空结果时,重点检查 text、encoding、errors、stdout、stderr 和 returncode 的边界,并给出可直接改造的排查示例。444 收藏 -
用一个可收尾的 Python 异步日志小项目讲清 QueueHandler、QueueListener、队列容量、prepare 与 stop 的配置和排查边界。303 收藏 -
Python sqlite3 的 autocommit 要先选清自动提交、显式事务或旧式 isolation_level。本文用连接参数、in_transaction 和重连验证排查提交回滚问题,并给出 Python 3.11 及更早版本的兼容写法。488 收藏 -
Python 的 cache 与 lru_cache 不是同一种容量策略:前者等价于无限缓存,后者可用 maxsize 限制容量。本文用配置示例和 cache_info 排查命中率、键参数与失效边界。377 收藏