- 在日常 Python 开发中,文件、数据库连接、锁等资源都需要及时释放。with 语句配合 contextlib 可以让代码更简洁、更安全。本文分享三个实用技巧。技巧一:使用 @contextmanager 装饰器。只需编写一个带 yield 的生成器函数,yield 之前的代码相当于进入上下文,之后的代码放在 finally 中保证退出时一定执行,无需手写 __enter__ 和 __ex... 在日常 Python 开发中,文件、数据库连接、锁等资源都需要及时释放。with 语句配合 contextlib 可以让代码更简洁、更安全。本文分享三个实用技巧。技巧一:使用 @contextmanager 装饰器。只需编写一个带 yield 的生成器函数,yield 之前的代码相当于进入上下文,之后的代码放在 finally 中保证退出时一定执行,无需手写 __enter__ 和 __ex...
- 刚学 Python 时,很多人都会直接在系统环境里装包。开始很省事,时间一长就容易出问题:A 项目要 requests 2.x,B 项目却要 3.x;换一台电脑又得重新回忆装过什么;甚至一不小心升级了某个包,正在跑的脚本就报错了。虚拟环境就是为了解决这些麻烦,它给每个项目单独准备一套 Python 解释器和依赖,互不干扰。 一句话理解虚拟环境可以把虚拟环境想象成项目专属的工具箱。系统 Pyt... 刚学 Python 时,很多人都会直接在系统环境里装包。开始很省事,时间一长就容易出问题:A 项目要 requests 2.x,B 项目却要 3.x;换一台电脑又得重新回忆装过什么;甚至一不小心升级了某个包,正在跑的脚本就报错了。虚拟环境就是为了解决这些麻烦,它给每个项目单独准备一套 Python 解释器和依赖,互不干扰。 一句话理解虚拟环境可以把虚拟环境想象成项目专属的工具箱。系统 Pyt...
- 很多线上故障的起点并不是第一次请求失败,而是重试把一次短暂抖动放大成雪崩:上游刚开始限流,下游几百个实例同时原地重试,限流就变成了持续过载。本文把重试和超时拆开讲清楚:什么能重试、超时怎么分、退避怎么写、以及一个可以直接复用的 Python 示例。 一、先分清:什么能重试,什么不能重试能重试的,一般是“结果不确定、且重做无害”的请求:网络超时、连接被重置、DNS 偶发失败;服务端返回 429... 很多线上故障的起点并不是第一次请求失败,而是重试把一次短暂抖动放大成雪崩:上游刚开始限流,下游几百个实例同时原地重试,限流就变成了持续过载。本文把重试和超时拆开讲清楚:什么能重试、超时怎么分、退避怎么写、以及一个可以直接复用的 Python 示例。 一、先分清:什么能重试,什么不能重试能重试的,一般是“结果不确定、且重做无害”的请求:网络超时、连接被重置、DNS 偶发失败;服务端返回 429...
- 早上定时任务刚收割的三套 Cookie,下午两点全报 not login;同一 profile 再登一次还会打死上一份。把会话寿命量出来之后,脚本的批处理边界和收割方式都得跟着改。 早上定时任务刚收割的三套 Cookie,下午两点全报 not login;同一 profile 再登一次还会打死上一份。把会话寿命量出来之后,脚本的批处理边界和收割方式都得跟着改。
- 用 Python 自带的 venv 给每个项目建一个独立环境:创建、激活、装包并用 requirements.txt 固定版本,避免不同项目之间的依赖冲突。 用 Python 自带的 venv 给每个项目建一个独立环境:创建、激活、装包并用 requirements.txt 固定版本,避免不同项目之间的依赖冲突。
- 很多 Python 初学者学完语法就卡在“不知道写什么”上。文件整理是一个很好的起点:需求真实、结果可见,又能把路径、命令行参数、异常处理这些基础串起来。本文的目标不是写一个功能最全的工具,而是写一个安全、可复用、敢给别人用的小脚本。 先定规则,再写代码动手之前先回答三个问题。第一,整理哪些文件?只处理下载目录还是任意目录?第二,按什么分类?按扩展名分图片、文档、压缩包最直观。第三,遇到重名... 很多 Python 初学者学完语法就卡在“不知道写什么”上。文件整理是一个很好的起点:需求真实、结果可见,又能把路径、命令行参数、异常处理这些基础串起来。本文的目标不是写一个功能最全的工具,而是写一个安全、可复用、敢给别人用的小脚本。 先定规则,再写代码动手之前先回答三个问题。第一,整理哪些文件?只处理下载目录还是任意目录?第二,按什么分类?按扩展名分图片、文档、压缩包最直观。第三,遇到重名...
- 日常脚本里处理文件路径,很多人还在用 os.path.join、os.path.exists 这一套。Python 3.4 引入的 pathlib 其实更简洁、更安全,本文用五个真实场景说明为什么该切换过去。 为什么不用 os.pathos.path 是函数式风格:你把字符串传进去,它返回字符串。问题是字符串不带类型信息,拼接时容易出错,比如忘了加分隔符、或者混用正反斜杠。pathlib 把... 日常脚本里处理文件路径,很多人还在用 os.path.join、os.path.exists 这一套。Python 3.4 引入的 pathlib 其实更简洁、更安全,本文用五个真实场景说明为什么该切换过去。 为什么不用 os.pathos.path 是函数式风格:你把字符串传进去,它返回字符串。问题是字符串不带类型信息,拼接时容易出错,比如忘了加分隔符、或者混用正反斜杠。pathlib 把...
- 介绍 Python 标准库 string.Template 的占位符语法、转义方式,以及 substitute 与 safe_substitute 面对缺失参数时的不同行为,并说明边界条件和适用场景。 介绍 Python 标准库 string.Template 的占位符语法、转义方式,以及 substitute 与 safe_substitute 面对缺失参数时的不同行为,并说明边界条件和适用场景。
- 用临时目录、回环监听和退出陷阱完成一次 Python HTTP 自检,区分 HTTP 状态与 curl 退出码,并防止端口冲突导致误判。附完整可执行脚本及清理边界。 用临时目录、回环监听和退出陷阱完成一次 Python HTTP 自检,区分 HTTP 状态与 curl 退出码,并防止端口冲突导致误判。附完整可执行脚本及清理边界。
- 硬盘里的下载、照片和项目备份越积越多,同一文件常被复制到不同目录。我不敢用“按文件名删除”的工具,于是用 Python 写了一个只负责发现和确认的本地重复文件查找器。这篇博客记录从分组扫描、分段哈希到结果核验的实现过程,也总结大文件性能、软链接和误删防护等细节。 硬盘里的下载、照片和项目备份越积越多,同一文件常被复制到不同目录。我不敢用“按文件名删除”的工具,于是用 Python 写了一个只负责发现和确认的本地重复文件查找器。这篇博客记录从分组扫描、分段哈希到结果核验的实现过程,也总结大文件性能、软链接和误删防护等细节。
- 用 csv.DictReader 读取订单文件,结合 Decimal 统计金额,并检查无效输入。 用 csv.DictReader 读取订单文件,结合 Decimal 统计金额,并检查无效输入。
- 用 tempfile、json、os.replace 和 fsync 实现一个可本地验证的 JSON 配置原子写入函数:临时文件与目标文件放在同一目录,序列化失败时保留旧内容,成功后一次替换,并用精确 stdout 与边界校验说明它解决什么问题、没有解决什么问题。 用 tempfile、json、os.replace 和 fsync 实现一个可本地验证的 JSON 配置原子写入函数:临时文件与目标文件放在同一目录,序列化失败时保留旧内容,成功后一次替换,并用精确 stdout 与边界校验说明它解决什么问题、没有解决什么问题。
- 刚学 Python 的时候,很多人都会把所有库一股脑装进系统自带的 Python 环境。写第一个爬虫装 requests,写第二个数据处理装 pandas,写第三个小工具又装一堆别的库,时间一长,系统环境就成了一个谁也说不清的“大杂烩”。更麻烦的是,项目 A 需要某个库的旧版本,项目 B 又需要同一个库的新版本,两边一冲突,轻则报错,重则把正在跑的项目也拖垮。解决这个问题的标准办法并不复杂:... 刚学 Python 的时候,很多人都会把所有库一股脑装进系统自带的 Python 环境。写第一个爬虫装 requests,写第二个数据处理装 pandas,写第三个小工具又装一堆别的库,时间一长,系统环境就成了一个谁也说不清的“大杂烩”。更麻烦的是,项目 A 需要某个库的旧版本,项目 B 又需要同一个库的新版本,两边一冲突,轻则报错,重则把正在跑的项目也拖垮。解决这个问题的标准办法并不复杂:...
- 下载文件夹总是越堆越乱?各种文件混在一起,找起来特别费劲。今天分享一个用 Python 写的自动整理脚本,几行代码就能按类型把文件分类归档。## 一、思路原理很简单:根据文件扩展名判断类型,然后移动到对应的分类文件夹里。比如图片丢到 Pictures、文档丢到 Documents、压缩包丢到 Archives。## 二、核心代码```pythonimport osimport shutilf... 下载文件夹总是越堆越乱?各种文件混在一起,找起来特别费劲。今天分享一个用 Python 写的自动整理脚本,几行代码就能按类型把文件分类归档。## 一、思路原理很简单:根据文件扩展名判断类型,然后移动到对应的分类文件夹里。比如图片丢到 Pictures、文档丢到 Documents、压缩包丢到 Archives。## 二、核心代码```pythonimport osimport shutilf...
- CPython 使用引用计数为主、分代回收为辅的垃圾回收机制。剖析对象的内存布局、循环引用的检测算法、gc 模块的手动控制、weakref 弱引用、内存池机制(pymalloc),以及如何通过 tracemalloc 定位内存泄漏。 文章从技术背景和发展历程入手,帮助读者理解该技术的产生原因和演进脉络。通过对比不同版本的特性变化,分析技术选型的考量因素,为读者提供全面的技术视野。 结合实际项... CPython 使用引用计数为主、分代回收为辅的垃圾回收机制。剖析对象的内存布局、循环引用的检测算法、gc 模块的手动控制、weakref 弱引用、内存池机制(pymalloc),以及如何通过 tracemalloc 定位内存泄漏。 文章从技术背景和发展历程入手,帮助读者理解该技术的产生原因和演进脉络。通过对比不同版本的特性变化,分析技术选型的考量因素,为读者提供全面的技术视野。 结合实际项...
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签