python教程技术文章
-
解释 Python sqlite3 执行异常后为什么要 rollback,比较手动事务、with conn、autocommit 与 in_transaction,避免连接残留事务影响后续写入。152 收藏 -
使用 Python zipfile 处理不可信 ZIP 时,先读取 ZipInfo 元数据,检查路径穿越、文件数量、总未压缩大小和压缩比,再把通过筛选的成员交给解压逻辑。432 收藏 -
csv.DictReader 遇到重复表头会发生字典键覆盖。本文用 csv.reader 按位置保留原始列,再生成唯一字段名,并说明 restkey、restval 的适用边界。107 收藏 -
pathlib 的 Path.glob 和 glob.glob 对点号开头文件的处理规则不同。本文用原创示例说明如何匹配隐藏文件、递归扫描,以及按需排除隐藏目录。244 收藏 -
用 asyncio.Queue(maxsize) 控制生产者回压,配合 task_done、join 和 Python 3.13 的 shutdown,构建有界且能正常收尾的异步生产者消费者模型。330 收藏 -
用 Python asyncio.TaskGroup 管理并发任务:理解首个异常如何取消同组任务、如何清理 CancelledError,以及如何用 except* 处理 ExceptionGroup。339 收藏 -
文章 · python教程 | 1个月前 | 文件处理 · python · Python TempFile NamedTemporaryFile TemporaryFile TemporaryDirectory
用 tempfile 处理当前流程文件、需要可见路径的外部交接和多文件中间结果,说明 TemporaryFile、NamedTemporaryFile、TemporaryDirectory 的选择、关闭边界与自动清理方式。345 收藏 -
讲清 Python 跨时区计算为什么不能固定加减小时,并用 zoneinfo、aware datetime、tzdata 和 fold 处理夏令时与重复时间。459 收藏 -
Python sqlite3 批量写入时,提交和回滚的关键是先划定事务边界:整批导入用连接上下文管理器,分批导入就按批次提交并只回滚当前批次。325 收藏 -
Python 用 subprocess 调用命令时,显式设置 encoding 和 text 可以直接得到正确中文;如果输出编码不稳定,则保留 bytes 后再用 errors 策略解码。301 收藏 -
Python 函数把列表直接写成默认参数时,默认值只在函数定义时创建一次,append 又会原地修改它,所以后续调用会看到上次的数据。本文用最小复现、参数生命周期和 None 哨兵写法,说明如何修复普通业务函数,以及什么时候共享对象可以作为有意的缓存。316 收藏 -
Python 复制嵌套列表后原数据也变化,通常是浅复制只复制了外层容器。本文用 id、is 和 copy.deepcopy 定位共享层级,并说明深复制的适用边界。278 收藏 -
Python dataclass 不能直接把列表作为默认值。本文解释 default_factory 的创建时机、实例隔离、显式传参和自定义工厂写法,并整理可变字段的排查清单。261 收藏 -
Python logging 同一条日志打印两遍,通常不是 log() 调用了两次,而是子 logger 和 root logger 都挂了 Handler,记录又沿层级传播。本文给出定位清单和两种单一责任点的修复方式。144 收藏 -
使用 Python argparse 的 add_subparsers 和 add_parser 拆分 list、create 等子命令,再用 set_defaults 绑定处理函数,解决参数归属和命令派发问题。443 收藏