python教程技术文章
-
文章 · python教程 | 1个月前 | python · utf-8 · pathlib · encoding 跨平台 UTF-8 locale Python pathlib.Path.read_text
Path.read_text() 省略 encoding 时会沿用文本打开的默认编码,读取 UTF-8 中文文件可能在不同环境表现不同。本文用 pathlib.Path、encoding="utf-8"、errors="strict" 和 PYTHONWARNDEFAULTENCODING 验证边界。212 收藏 -
json.loads 的整数限制和 JSON 文档大小限制不是一回事。本文用 parse_int 建立单个整数位数边界,再配合入口字节数检查,避免超大整数输入拖垮解析。212 收藏 -
Python functools.cache适合无界记忆化,lru_cache适合设置容量和淘汰策略。本文从参数可哈希、typed、cache_info与失效边界出发,给出可直接套用的选择清单。211 收藏 -
asyncio.gather 遇到子任务异常时,默认只把第一个异常交给调用方,其他任务可能仍在运行。本文用可复现实验说明 return_exceptions、Task.cancel 和 finally 清理之间的边界。210 收藏 -
Python 3.14 为 asyncio 增加 ps 和 pstree 命令,可以直接查看运行进程里的任务名、协程栈和等待链。本文用一个可复现的卡住任务场景说明如何选择 PID、读取输出、定位等待点,并给出版本与权限边界。207 收藏 -
Python pathlib 的 Path.glob 和 Path.rglob 不会自动排除点号开头的隐藏目录。本文说明如何包含或排除隐藏路径,并比较结果过滤与 Path.walk 裁剪目录树的写法。207 收藏 -
用 Python dataclass 同时开启 slots 和 weakref_slot,创建节省实例字典且支持弱引用的数据类,并梳理版本、继承、字段反射和动态属性限制。207 收藏 -
Python PickleBuffer 配合 pickle 协议 5,可把大数组数据作为带外缓冲区单独传递,让主 pickle 流只保存对象结构与引用标记。本文给出 NumPy 与自定义容器写法,并说明连续性、顺序、生命周期和安全边界。207 收藏 -
Python 的 sqlite3.Connection.blobopen 可对已有 SQLite BLOB 做分块读写。本文演示 zeroblob 预分配、流式写入和导出,并说明固定长度、rowid 权限、事务与资源边界。205 收藏 -
Python 日志文件已经完成轮转,旧文件却继续变大,通常不是轮转器失效,而是进程仍持有旧文件句柄或多个 handler 重复写入。本文用 WatchedFileHandler、RotatingFileHandler 和多进程场景拆开排查,并给出可复现的验收步骤。204 收藏 -
weakref.finalize 适合为文件句柄、临时目录等资源安排对象回收后的兜底动作,但回调参数、存活引用和解释器退出阶段都有明确边界。本文用可运行的小例子拆解注册、触发、detach 与 atexit 行为。200 收藏 -
使用 Python pathlib 的 resolve 与 relative_to 统一路径坐标,安全判断候选路径是否位于根目录下,并处理符号链接、越界、跨盘符和不存在目标等边界。199 收藏 -
Python 3.13 新增 os.process_cpu_count(),它读取当前进程可用的逻辑 CPU 数,可能小于 os.cpu_count()。本文用容器配额和线程池示例拆开默认值、None 回退、显式 max_workers 与验收边界。197 收藏 -
Windows 下复用 Python tempfile.NamedTemporaryFile 时,关键是区分原句柄是否仍打开,并正确选择 delete_on_close 或 delete 参数。本文给出 Python 3.12+ 与旧版本的写法、清理责任和验证清单。197 收藏 -
Python 批量调用外部接口时,任务越多不一定越快。本文从订单补数任务的耗时基线出发,用 httpx 连接池、asyncio.Semaphore 和超时预算控制请求数量,并通过压测结果说明配置边界与排查方法。196 收藏