Python的walk和Decorator使用一例

Python装饰器本质:函数替换、闭包与元数据管理 装饰器是Python中实现横切关注点(如日志、缓存、校验)的核心机制,其本质并非语法糖,而是函数对象的动态替换过程——通过高阶函数返回闭包,在函数定义时完成变量名绑定覆盖。理解这一原理,才能规避元数据丢失、递归陷阱和类型不匹配等高频问题。闭包确保装饰器能‘记住’被包装函数,而@wraps则保障__name__、__doc__等关键属性不被覆盖。在Web开发、数据处理和API服务等场景中,合理使用装饰器可显著提升代码复用性与可维护性,但需警惕性能开销与执行时机陷阱。 阅读详情

由于经常要查询C++相关的资料,翻书太麻烦,MSDN太大,去网上查询又太慢。于是决定将www.cplusplus.com整个打包成CHM,以便查询用。

 

将网站down下来之后,发现要做成CHM还是有不少后期工作要做,比如:应该把页面右上方的Login去掉。。。
正好学了Python一直没有派上大的用场,咱露它一小手吧。

 

第一个问题就是遍历目录的问题,网站下面有好几十个目录,以前写C++的经验告诉我,这得用一个递归函数来遍历。但在Python中,一个walk函数搞定一切,Fantastic!

 

举个例子:
E盘根目录下有文件夹a
 a
 ├──aa
 │  ├──aaa
 │  ├──aa.txt
 │  └──ab.txt
 ├──ab
 │  ├──aba
 │  └──ab.txt
 ├──a.txt
 └──b.txt


在Python中对目录a进行walk后:

其返回值是一个Generator,每次迭代的结果是一个Tuple t,由三个元素组成,
t[0]为当前所遍历的目录名
t[1]为当前目录下的所有子目录
t[2]为当前目录下的所有文件名

这使得遍历目录相当轻松。

 

修改页面内容的脚本如下:(略去了实现细节)

 

输出结果:

Command line: D:/programs/Python26/python.exe D:/Projects/Python/MODIFY~1.PY
Working directory: D:/Projects/Python
Timeout: 0 ms

 

1 / 2135 -->"e:/CppReference/www.cplusplus.com/default.htm"  is done!
2 / 2135 -->"e:/CppReference/www.cplusplus.com/articles/default.htm"  is done!
3 / 2135 -->"e:/CppReference/www.cplusplus.com/doc/default.htm"  is done!
......
1194 / 2135 -->"e:/CppReference/www.cplusplus.com/reference/string/string/swap/default.htm"  is done!
1195 / 2135 -->"e:/CppReference/www.cplusplus.com/reference/string/swap/default.htm"  is done!
1196 / 2135 -->"e:/CppReference/www.cplusplus.com/src/default.htm"  is done!

 

Process "Python Interpreter" terminated, ExitCode: 00000000

 

一个小程序让我学到了很多东西,由于是自用的,也没有错误处理,也没有异常。所以
我一定会回来的!

Python代码复杂度分析:从圈复杂度到业务感知的动态评估 代码复杂度是衡量软件可维护性与稳定性的核心指标,涉及圈复杂度、认知复杂度等多维技术概念。其原理源于控制流图分析与认知负荷理论,通过AST解析、节点权重建模和上下文感知计算,将抽象质量属性转化为可量化、可追踪的工程数据。该技术显著提升Code Review效率、降低线上故障率,并支撑重构决策与新人培养。在Python生态中,结合ast标准库、语义规则引擎与Git/IDE集成,能实现轻量、透明、业务适配的实时复杂度评估——这正是本文聚焦的‘Analyzing Complexity of Code through 阅读详情

相关推荐

25道Python进阶练习题:从基础语法到实战项目的刻意练习指南

Python编程能力的提升,关键在于从掌握基础语法到形成高效、优雅的工程实践能力的跨越。这一过程的核心原理在于通过大量、有梯度的刻意练习,将知识内化为解决问题的‘肌肉记忆’。其技术价值在于,能够帮助开发者建立扎实的算法思维、数据结构应用能力以及对代码性能的敏感度,从而写出更健壮、更可维护的程序。在应用场景上,无论是应对技术面试、处理日常数据分析任务,还是开发自动化脚本,这种能力都至关重要。本文精选的25道练习题,正是围绕这一目标设计,覆盖了字符串处理、列表操作、递归与迭代、文件I/O、装饰器与生成器等关键【

weixin_33736832的博客 360

Python - walk()方法详解1

网络上不缺乏os.walk()方法的介绍,但很多都是千篇一律的转载,查看了很多文档基本都基于官方文档。如下网址,都有详细的介绍:[https://www.tutorialspoint.com/python/os_walk.htm][https://docs.python.org/3/library/os.html]1. 基本的使用和介绍熟悉文档定义的开发者,请跳过这一段。 os.walk()方法os.walk() 方法可以创建一个生成器,用以生成所要查找的目录及其子目录下的所有文件。os

flysh05的专栏 2516

Python递归、lambda与random:从原理到生产级协同实战

递归、匿名函数(lambda)和随机函数是Python中三类常被误用的基础机制。它们并非孤立语法糖,而是分别映射调用栈管理、作用域封闭性与伪随机数生成器(PRNG)状态控制等底层运行时原理。理解其本质可避免RecursionError、闭包变量捕获异常、随机结果不可重现等高频工程问题。技术价值在于提升代码健壮性、可调试性与跨环境一致性,广泛应用于API嵌套解析、动态策略构建、请求防封禁抖动等真实场景。本文聚焦这三者的协同机制与防御式编码实践。

weixin_30487201的博客 351

python walk()函数

walk(a) 它的作用是输出a路径下的所有子目录组成的三元组 ‘(路径,[包含目录],[包含文件])’ import os for i in os.walk("Lib"): print(i) 我这里返回的有点多 ('Lib', ['site-packages', 'tcl8.6'], []) ('Lib\\site-packages', ['pip-19.0.3-py3.7.egg']...

欢迎光临雨落星辰的博客 4833

ETF双因子轮动策略:动量与质量因子的Python量化实战

多因子模型是量化投资中的核心方法论,通过结合多个维度指标来筛选优质资产。其基本原理是从不同角度评估资产表现,动量因子捕捉价格趋势强度,质量因子衡量风险调整后的稳定性。这种技术价值在于能够实现因子间的互补效应,降低单一因子的周期性风险。在资产配置和组合优化等应用场景中,双因子轮动策略通过动态调整权重来适应市场变化。本文基于Python的backtrader框架,完整实现了ETF双因子轮动策略的量化回测系统,涵盖数据获取、因子计算到策略执行的完整开发流程,为量化投资爱好者提供了一套可复用的实战框架。

weixin_30254435的博客 362

基于MCP协议构建Remarc:为AI编程助手注入项目上下文

在AI辅助编程领域,大型语言模型(LLM)虽然能生成代码,但常因缺乏对特定项目的深度理解而产生风格不一、架构冲突等问题。这源于其有限的上下文窗口和项目知识缺失,导致开发者需反复审查修正,反而降低效率。MCP(Model Context Protocol)协议为此提供了解决方案,它标准化了AI应用与外部工具间的通信,允许开发者构建自定义的上下文服务器。通过MCP,可将项目特有的技术栈、代码规范、依赖关系等结构化信息实时注入AI的思考过程,从而提升生成代码的准确性和一致性。Remarc正是基于MCP构建的上下文

weixin_30367873的博客 453

一文弄懂 Python os.walk(),轻松搞定文件处理和目录遍历

一文弄懂 Python os.walk(),轻松搞定文件处理和目录遍历

叶庭云 成为自己的光 1万+

Two Sigma量化工程解析:AI赋能投资的完整链路

从数据到风控,量化投资与人工智能的结合正成为金融科技领域的热点。机器学习在投资中的应用并非简单的模型预测,而是建立在数据管道、特征工程与风险控制的系统工程之上。通过统一的数据清洗与对齐,研究人员能够构建可复现的特征存储,确保模型训练与生产环境的一致性。结合回测与walk-forward验证,可有效评估策略的稳健性。同时,组合优化与独立风控规则为实盘交易提供约束,避免模型直接决策带来的风险。本文基于Two Sigma的公开访谈,梳理AI赋能投资的工程链路,涵盖数据、特征、模型、生产与风控关键环节,为量化研究者

weixin_30313409的博客 264

Python:os模块中的walk()函数

1、walk()函数的语法结构: [ (当前目录列表),(子目录列表),(文件列表)]os.walk(树状结构文件夹名称) os.walk()返回一个由3个tuple类型的元素组成的列表。索引值为0的表元素是文件夹名称,据此可以知道当前在处理的文件夹是哪一个。索引值为1的表元素是下一层文件夹列表,用来了解在此文件夹中还有几个下层文件夹,分别叫什么名字。索引值为2的元素是本文

abvedu的博客 9587

PWM控制技术+Simulink仿真详解

想要理解SVPWM控制技术,首先要了解PWM控制技术。 PWM控制技术就是对脉冲宽度进行调制的技术,通过对一系列脉冲宽度进行调制来等效获得所需要的波形(包括形状和幅值)。 PWM控制的基本原理:冲量(窄脉冲的面积)相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果(输出响应波形)基本相同,即面积等效原理;用一系列幅值相等,宽度按一定规律变化的高频脉冲序列代替期望的输出波形,多用于逆变电路的控制; PWM信号生成的方法有:计算法、调制法、跟踪法,主要对调制法进行详解 ...

小师兄的学习记录 5万+

保姆级教程:用NILMTK和REDD数据集,5分钟跑通你的第一个负荷分解模型

本文提供了一份详细的NILMTK和REDD数据集负荷分解模型教程,适合零基础用户快速上手。从环境准备、数据获取到模型构建和评估,全程仅需5分钟即可完成。特别适合希望快速入门非侵入式负荷分解(NILM)的开发者,涵盖数据预处理、模型训练及结果可视化等关键步骤。

weixin_30493401的博客 442

Python - walk()方法详解3

除了遍历某个文件夹以及其子文件夹和所有的文件外,我们应该更多的是,对目标文件的处理,比如修改批量文件名,批量修改文件扩展名,或者针对某一类的文件操作,复制备份都可以的。1. 最简单的实现统计某种类型文件的数量def Get_pdf_file_counts(folderpath, extendType):"""    获取指定扩展名文件的数量    :param folderpath: 要查询的文件夹路径    :param extendType:

flysh05的专栏 2084

YOLO11创新改进系列:卷积,主干 注意力,C3k2融合,检测头等创新机制(已更新110+)

本专栏提供详细的 YOLO11 教程,包括基础知识、源码解析、入门实践、算法改进和项目实战,适合发表YOLO11 学习者订阅。内容包含 100+多篇独家改进机制,适合发表论文,评分高达 96 分。订阅者将获得一键运行的改进文件及答疑交流群支持。 使用服务器的同学还可以私聊获取搭建好的运行环境。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 1万+

Python函数编程:从基础到高阶应用全解析

函数是编程语言中的核心构建块,通过封装可重用代码逻辑实现模块化编程。Python函数支持多种参数传递方式(位置参数、默认参数、可变参数),并具备返回值处理和作用域控制能力。在工程实践中,函数的高阶应用包括装饰器增强、闭包实现状态保持、生成器处理大数据流等场景。特别在数据处理和Web开发领域,良好的函数设计能显著提升代码复用率和可维护性。本文以Python为例,深入讲解lambda表达式、高阶函数等函数式编程特性,以及如何避免常见陷阱并遵循最佳实践。

weixin_33906657的博客 522

【SpringBoot 3.x 第43节】你还敢说 Spring 启动慢是“宿命”?Spring AOT 把启动剧本都提前写死了,你服不服?

🏆本文收录于《滚雪球学SpringBoot 3》,专门攻坚指数提升,本年度国内最系统+最专业+最详细(永久更新)。

**My Coding Family** 543

聊聊5G RedCap与eRedCap

而eRedCap作为R18引入的升级版本,进一步将峰值速率限制为10Mbps,仅支持FR1频段,通过减少物理资源块(PRB)数量和优化休眠机制,实现了更低的功耗和成本,成为NB-IoT/LTE-M的理想升级路径。RedCap与eRedCap的出现,正是为了填补“中间地带”—它们既具备高于mMTC的传输速率(接近LTE Cat 4水平),又能实现传统5G NR无法企及的低功耗与低成本,完美适配智能电表、工业网关、智能穿戴设备等“中等需求”物联网设备。时延则低至50ms以下,满足工业机械远程控制的实时性需求。

asd199086的博客 1745

python学习笔记

1)语法class 类名:“”“类说明文档”“”类体类名一般使用大驼峰命名法。类体中可以包含类属性(也叫类变量)、方法、实例属性(也叫实例变量)等。并非必须在类定义中进行方法定义,也可以将一个函数对象赋值给一个类内局部变量。#类外定义的函数class C:f = f1Python是一门解释型语言,只有在程序运行后才会执行语法检查。所以,只有在运行或测试程序时,才会真正知道该程序能不能正常运行。Python有两种错误很容易辨认:语法错误和异常。

dangerouszzz的博客 1004

【Claude Code的Harness Engineering实现】:06-记忆系统(Memory)

记忆系统是Claude Code实现跨会话持久化和上下文保持的核心组件。它分为短期记忆(当前会话的对话历史)和长期记忆(跨会话保留的结构化信息),通过多层级的文件系统实现灵活的记忆管理。

rengang66的博客 240

python3 核心笔记

本文主要是针对python3的一些核心要点做一些记录,感兴趣的可以关注和订阅。会持续更新,这个玩意学习一下,可以为数据分析和AI打下一定的基础。

yanghuashuiyue的专栏 621

(第78天)DB RU 补丁升级:19C 升级到 19.22

目前 Oracle 19C 是最新的稳定支持的版本,生产环境中使用的越来越多。当然,随着客户使用量的增多,自然无可避免的产生了很多 BUG,Oracle 每季度都会发布一个 RU 补丁来修复当前季度所产生的一些重要 BUG 补丁。作为 DBA,DB 补丁修复必然是需要掌握的一项技能。本文将介绍如何将数据库升级到最新的 RU 版本。

LuciferLiu_DBA 846

专栏三:解析spatialCNV的使用

文章Spatially resolved clonal copy number alterations in benign and malignant tissue发在natur

m0_58549466的博客 1252

如何高效构建PDFMathTranslate批量翻译API:Python接口与HTTP服务实战指南

PDFMathTranslate作为一款基于AI技术的专业PDF文档翻译工具,能够完整保留排版格式,支持Google、DeepL、Ollama、OpenAI等多种翻译服务,为技术开发者和系统集成者提供了强大的API接口。本文将深入解析如何构建高效、灵活的PDFMathTranslate批量翻译API系统,涵盖Python接口深度集成、HTTP服务实战配置、性能优化技巧等关键技术要点。 ## 项目

gitblog_00416的博客 527

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Python递归、匿名函数与随机模块的工程实战解析

递归是处理嵌套结构与不确定深度数据的核心机制,其本质在于代码结构与问题结构的天然映射;匿名函数(lambda)并非语法糖,而是将行为作为一等公民传递的关键能力,支撑高阶函数与动态规则封装;随机模块则需区分伪随机、密码学安全与向量化场景,解决可复现性、线程安全与业务可控性问题。三者在真实项目中高频协同——如递归解析树形配置、lambda动态注入业务逻辑、secrets保障赠品抽取安全性。本文聚焦Python工程落地中的典型陷阱与生产级解决方案,覆盖sys.setrecursionlimit调优、闭包变量捕获修

weixin_33868027的博客 421

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Python进阶实战:从类型系统到并发编程的专家技巧

Python作为动态类型语言,其类型系统通过Type Hints实现了静态类型检查的能力,配合mypy工具能在编译期捕获类型错误。在并发编程领域,asyncio的事件循环机制通过协程实现高并发IO操作,但需要注意任务调度策略以避免性能下降。这些技术在企业级应用中能显著提升代码健壮性和执行效率,特别是在微服务架构和数据处理流水线等场景。本文通过类型注解配置、asyncio批处理模式等实战案例,演示如何规避多线程数据竞争等典型问题,其中类型注解可使维护成本降低50%以上,而正确的asyncio任务分批策略能提升

weixin_34375251的博客 300

Python __slots__ 内存优化:减少30%以上对象内存占用

Python对象默认使用__dict__字典存储属性,导致每个实例产生显著内存开销;__slots__通过编译期固定属性名,消除动态字典结构,将对象内存布局压缩为紧凑的C风格结构体。其核心价值在于降低单实例内存(如从64B降至40B)、提升CPU缓存命中率,并在海量实例场景(如行情快照、订单模型)中实现指数级内存节省。适用于字段固定、生命周期长、数量庞大的数据类,尤其配合dataclasses.slots=True可兼顾类型安全与工程效率。

wyjvip333的专栏 465

OpenClaw:AI自主编程开源项目的核心技术解析

AI自主编程是当前软件开发领域的前沿技术,通过自然语言处理(NLP)和机器学习算法实现需求到代码的自动转换。其核心技术包括需求理解层的意图识别、实体抽取和逻辑还原,以及代码生成引擎的树状结构生成策略。这些技术显著提升了开发效率,尤其在数据处理脚本、Web爬虫等场景表现突出。OpenClaw项目结合GPT-4和Claude-3等先进模型,实现了78%的代码通过率,远超传统AI辅助工具。项目还采用Docker沙盒化测试和动态依赖管理,确保生成代码的安全性和可用性。对于开发者而言,理解这些原理有助于更好地利用AI

weixin_34321753的博客 393
上一篇: Python装饰器学习
下一篇: 《C++ 语言的设计和演化》摘要暨读后感
thy38
博客等级 码龄19年 184粉丝 116原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值