python教程技术文章
-
文章 · python教程 | 2天前 | 文件读写 · 数据库 · sqlite3 · Blob · Python教程 · Python 事务 blob sqlite3 blobopen zeroblob
Python 的 sqlite3.Connection.blobopen 可以像文件一样分块读写已有 BLOB,但它不能改变长度,写入前要用 zeroblob 预留空间,并把 Blob 生命周期、事务提交和异常回滚分开处理。366 收藏 -
Path.resolve() 和 Path.absolute() 都能得到绝对路径,但遇到软链接、不存在文件和 strict 参数时结果不同。本文用一个可复现的 pathlib 场景拆开两者的边界,并给出选择方法。362 收藏 -
Python 的 tarfile 不是把归档直接解开就完事:本文用一个可运行的临时目录示例,拆解成员路径检查、data_filter、部分解压后的清理,以及 Python 3.12 到 3.14 的兼容写法。354 收藏 -
pathlib 和 os.path 都能处理 Python 文件路径,但适用边界并不一样。本文用配置目录、拼接、规范化和真实存在性检查四个场景比较两套 API,给出可落地的选型规则。353 收藏 -
文章 · python教程 | 2天前 | 异常处理 · 资源管理 · 异步编程 · Python教程 · AsyncExitStack · Python 回滚 aclose contextlib.AsyncExitStack 异步资源
异步服务在初始化数据库连接、临时目录或会话资源时,只要中途一步失败,前面已经成功创建的资源就必须可靠释放。本文用 contextlib.AsyncExitStack 拆开 enter_async_context、push_async_callback 与 aclose 的调用链,说明逆序清理、部分初始化失败和重复关闭的边界。352 收藏 -
用 asyncio.Semaphore 控制批量协程的并发上限,再配合 asyncio.wait_for 和 gather(return_exceptions=True) 区分超时、成功与失败,让任务在单次请求异常后仍能继续收敛。339 收藏 -
functools.singledispatchmethod 可以让同一个类方法按第一个非 self 参数的运行时类型选择实现。本文从注册、调用、装饰器顺序和子类继承四个边界拆开验证,给出适合消息解析与命令分发的落地写法。329 收藏 -
文章 · python教程 | 2天前 | 日志 · 性能优化 · Python教程 · Python 异步日志 QueueListener logging.QueueHandler queue.Full
Python 用 QueueHandler 把日志交给后台线程后,有限队列一旦满了就会触发 queue.Full。本文用可复现实验比较默认处理、显式丢弃和阻塞写入,给出压测指标与上线边界。308 收藏 -
dataclasses.replace 能创建同类型的新对象,却不会递归复制嵌套配置。本文用服务配置快照说明浅层替换、嵌套对象共享、fields 与 asdict 的边界,并给出可验证的更新流程。304 收藏 -
用 Python subprocess.run 把多行文本交给子进程,掌握 input、text、capture_output、check 和 returncode 的组合边界,避免 shell 拼接与结果误判。278 收藏 -
Python 3.12 起 cached_property 移除了此前的未公开锁,同一实例的属性计算可能被多个线程同时触发。本文用最小示例说明实例字典、_lock 与幂等读取的边界,并给出需要严格一次时的改法。278 收藏 -
Python 用 zipfile 解压上传文件时,BadZipFile 往往来自错误的文件头、未完整写入或扩展名伪装。本文从 is_zipfile 与 ZipFile 验证开始,再处理成员路径和安全解压边界。246 收藏 -
用 Python csv.QUOTE_NOTNULL 区分 None 与空字符串,掌握写入、读取、版本兼容和回退检查,避免 CSV 导入时丢失空值语义。225 收藏 -
文章 · python教程 | 2天前 | SQLite · 数据一致性 · Python教程 · 事务控制 · Python SQLite 事务 sqlite3 Connection.autocommit
Python 3.12 之后 sqlite3 的事务控制增加了 Connection.autocommit。本文用一组可运行的小实验区分 False、True 与 LEGACY_TRANSACTION_CONTROL,说明 commit、rollback、close 的实际边界,并给出旧代码迁移检查清单。221 收藏 -
Python csv.DictReader 读取列数不整齐的 CSV 时,多余字段会进入 restkey,缺失字段会得到 None。本文用一组可复现的小例子说明如何校验表头、识别异常行并保留可追踪信息。215 收藏