enumerate Files and Folders(遍历)

可读性与可扩展性:一个完美的函数 #P010# 在这一篇文章中,我们会在os.walk函数的基础上,封装一个查找文件的函数。如果读者是一位编程经验还不太丰富的工程师,相信可以从这篇文章中受到一些启发,并在以后的工作中,更加能够编写出扩展性强、可读性强、好维护的代码。 1 使用os.walk遍历目录树 为了避免读者不了解os.walk函数,从而无法理解这篇文章在就讲什么。因此,在正式介绍今天的主题之前,我们先来看一下os.walk函数的使用。 o... 阅读详情

1。对指定目录的浅遍历

   - (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error 

e.g.

- (void) actionEnumerate{ 

    NSFileManager *fileManager = [[NSFileManager alloc] init];

    NSString *bundleDir = [[NSBundle mainBundle] bundlePath];

    NSError *error = nil;

    NSArray *bundleContents = [fileManager  contentsOfDirectoryAtPath:bundleDir  error:&error];  

    if ([bundleContents count] > 0 && error == nil){

        NSLog(@"Contents of the app bundle = %@", bundleContents);

    }

    else if ([bundleContents count] == 0 && error == nil){

        NSLog(@"Call the police! The app bundle is empty.");

    }

    else {

        NSLog(@"An error happened = %@", error);

    }

}

2。对指定目录的浅遍历(并能获取到结果中每一数据项的额外信息,如是否文件,创建时间等)

   - (NSArray *)contentsOfDirectoryAtURL:(NSURL *)url includingPropertiesForKeys:(NSArray *)keys

                             options:(NSDirectoryEnumerationOptions)mask error:(NSError **)error 

参数

   includingPropertiesForKeys: NSURLIsDirectoryKey / NSURLIsReadableKey / NSURLCreationDateKey

                               NSURLContentAccessDateKey / NSURLContentModificationDateKey

   options:0 //显示全部文件

           NSDirectoryEnumerationSkipsHiddenFiles //忽略隐藏文件

3。获取文件属性 (NSURL类的实例方法)

   - (BOOL)getResourceValue:(out id *)value forKey:(NSString *)propertyKey error:(out NSError **)error


e.g.

//获取指定文件夹(.app)下的内容(返回结果中的每一项都是NSURL,且带有各种属性,如创建日期,最后修改日期等)

- (NSArray *) contentsOfAppBundle{

    NSFileManager *manager = [[NSFileManager alloc] init];

    NSURL *bundleDir = [[NSBundle mainBundle] bundleURL];

    //各种属性

    NSArray *propertiesToGet = @[

                                NSURLIsDirectoryKey,

                                 NSURLIsReadableKey,

                                 NSURLCreationDateKey,

                                 NSURLContentAccessDateKey,

                                 NSURLContentModificationDateKey

                                 ];


    NSError *error = nil;

    NSArray *result = [manager contentsOfDirectoryAtURL:bundleDir includingPropertiesForKeys:propertiesToGet

                                                options:0  error:&error];    

    if (error != nil){

        NSLog(@"An error happened = %@", error);

    }    

    return result;

}


- (NSString *) stringValueOfBoolProperty:(NSString *)paramProperty  ofURL:(NSURL *)paramURL{

    NSNumber *boolValue = nil;

    NSError *error = nil;

    [paramURL getResourceValue:&boolValue forKey:paramProperty  error:&error];

    if (error != nil){

        NSLog(@"Failed to get property of URL. Error = %@", error);

    }

    return [boolValue isEqualToNumber:@YES] ? @"Yes" : @"No";   

}

- (NSString *) isURLDirectory:(NSURL *)paramURL{

    return [self stringValueOfBoolProperty:NSURLIsDirectoryKey ofURL:paramURL];

}

- (NSString *) isURLReadable:(NSURL *)paramURL{

    return [self stringValueOfBoolProperty:NSURLIsReadableKey ofURL:paramURL];

}


- (NSDate *) dateOfType:(NSString *)paramType inURL:(NSURL *)paramURL{

    NSDate *result = nil;

    NSError *error = nil;

   [paramURL getResourceValue:&result forKey:paramType  error:&error];

    if (error != nil){

        NSLog(@"Failed to get property of URL. Error = %@", error);

    }

    return result;

}


- (void) printURLProperties:(NSURL *)paramURL{    

    NSLog(@"Item name = %@", [paramURL lastPathComponent]);

    NSLog(@"Is a Directory? %@", [self isURLDirectory:paramURL]);

    NSLog(@"Is Readable? %@", [self isURLReadable:paramURL]);

    NSLog(@"Creation Date = %@",

          [self dateOfType:NSURLCreationDateKey inURL:paramURL]);

    NSLog(@"Access Date = %@",

          [self dateOfType:NSURLContentAccessDateKey inURL:paramURL]);

    NSLog(@"Modification Date = %@",

          [self dateOfType:NSURLContentModificationDateKey inURL:paramURL]);

}


-(void)actionEnumerate {

    NSArray *itemsInAppBundle = [self contentsOfAppBundle];

    for (NSURL *item in itemsInAppBundle){

        [self printURLProperties:item];

    }

}


postscript: 
    1。上述罗列的方法是属于浅遍历,若要深入遍历则需用

       enumeratorAtURL:includingPropertiesForKeys:options:errorHandler:


scikit-learn中load_files函数源码解析 # load_files函数解析 def load_files(container_path, description=None, categories=None, load_content=True, shuffle=True, encoding=None, decode_error='strict', random_state=0): 阅读详情

相关推荐

Python新手实战指南:从环境搭建到项目开发的完整学习路线

Python作为一门动态类型语言,以其简洁的语法和强大的生态系统在编程领域广受欢迎。其核心原理在于解释器逐行执行代码,支持面向对象、函数式等多种编程范式。Python的技术价值体现在快速开发、丰富的第三方库以及跨平台兼容性上,广泛应用于Web开发、数据分析、人工智能和自动化脚本等场景。通过掌握环境配置、虚拟环境管理和基础语法,开发者可以快速构建实用工具。本文基于Python 3.10/3.11版本和VSCode编辑器,重点介绍从环境搭建到文件操作、数据处理的项目实战路径,帮助新手建立完整的Python工程化

weixin_33971977的博客 410

python enumerate用法总结

enumerate()说明 enumerate()是python的内置函数 enumerate在字典上是枚举、列举的意思 对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值 enumerate多用于在for循环中得到计数 例如对于一个seq,得到:(0, seq[0]), (1, seq[1]), (2, seq[

竹聿Simon的专栏 46万+

OpenClaw:本地AI终端代理,WhatsApp远程控制Mac/Linux

本地AI终端代理是一种将大语言模型能力与操作系统Shell深度集成的轻量级执行架构,其核心原理是通过网关层统一消息路由、由本地编码代理(如Pi)解析自然语言并生成安全可控的Shell命令。相比云端直连方案,它具备低延迟、强隐私、高确定性等技术价值,广泛应用于跨设备文件检索、日志分析、自动化运维、智能办公等场景。OpenClaw正是这一范式的典型实现,支持WhatsApp、Telegram等多通道接入,全程自托管、本地执行、Claude驱动。

weixin_34007906的博客 359

Python中的枚举enumerate用法

Python中的枚举enumerate用法 dir=r"G:\数据集\celebA\celebA(分卷形式,一起解压)\celebA\Anno\list_bbox_celeba.txt" file=open(dir) for i,line in enumerate(file): print(i) print(line) 输出: i是索引,line是索引对应的内容 ...

weixin_44928646的博客 976

VL53L1X移植到STM32实战记录,使用软件IIC(附源代码)

序言 VL53L1X是一个很小又很优秀的测距传感器,它相比于上一代VL53L0X有着不小的提升,这次毕业设计打算将这个传感器用起来,就来移植了一下,遇到的坑怎么说还是有一些,故在此分享给大家。 开发环境 IDE:Keil V5 STM32CubeMX ,使用HAL库 具体操作 获取官方库并进行移植 这一步是移植的基础,首先从官方把API库下下来,并添加到IDE中: 适配硬件 这里由于不同的硬件平...

wmdscjhdpy的博客 1万+

单片机按键识别篇---单击---双击----长按

  最近做一任务需要使用一个按键实现三种功能,分别是按键单击功能,按键双击功能和按键长按功能,可能之前没有接触过这类按键复用情况,顶多也只是简单识别单击和长按,没有想过双击以上按键功能,也是绞尽脑汁,想了半天,又上网看了些例程,算是对于按键的识别有点小小的了解,感觉这个功能挺实用,在此做个随笔。 一、思路   1.识别长按操作思路:我们使用系统定时器定时,然后让系统每过一段时间去扫描按键I/O...

weixin_30311605的博客 3660

Python批量处理文件、图片、视频【干货建议收藏】

文章目录1.批量筛选2.批量重命名3.批量保存、复制或移动4.批量下载图片5.批量压缩图片 1.批量筛选 切片 切分 正则 2.批量重命名 直接修改 os 根据规则修改 3.批量保存、复制或移动 复制 移动 保存 保存图片 保存txt 保存到csv 保存数据库mysql 4.批量下载图片 5.批量压缩图片 ...

cungudafa的博客 5980

告别混乱!用Cadence Capture CIS高效管理你的原理图库:以单逻辑器件K9F2G08U0M为例

本文以单逻辑器件K9F2G08U0M为例,详细介绍了如何使用Cadence Capture CIS高效管理原理图库。通过三级分类体系、工程化命名规范和智能检索技术,帮助工程师实现从混乱到有序的转变,提升团队协作效率和设计准确性。

aizhi0169的博客 400

枚举方法EnumerateFile

import java.io.File; import java.util.Map; import java.util.Map.Entry; import org.dom4j.Element; public class EnumerateFile { // 枚举文件对应一个File private File enumFile; // 对应一个Elemen...

爱的思念 591

SIGIR 2026:信息检索前沿技术与投稿指南

信息检索(Information Retrieval, IR)是计算机科学中处理大规模数据检索的核心技术,其基本原理是通过算法模型从海量数据中高效提取相关信息。随着深度学习的发展,神经信息检索(Neural IR)和多模态检索成为研究热点,如稠密检索模型(DPR)和跨模态预训练(CLIP)等技术的应用显著提升了检索精度。这些技术不仅在学术领域具有重要价值,还在电商搜索、医疗检索等实际场景中展现出巨大潜力。SIGIR作为信息检索领域的顶级会议,汇聚了全球顶尖学者和工业界专家,是展示最新研究成果的重要平台。本文

weixin_29189363的博客 287

MIT Mini Cheetah--仿真流程

MIT Mini Cheetah–仿真 摘要 由于官方提供代码中,控制仿真环境中的猎豹机器人运动需要遥控器来控制。官方默认推荐使用logitech Gamepad F310游戏手柄:We use the Logitech F310 controller. There’s a switch in the back, which should be in the “X” position. The controller needs to reconnected if you change the switch

Galaxy_Robot的博客 5916

Python文件操作大全

python超详细基础文件操作

eighters的博客 2058

在 SAP HANA XS Advanced 中用 InA 打通 Web 化分析数据访问:架构原理、部署步骤与实战指南

本文介绍了如何在SAP HANA环境中通过InA协议为XS Advanced应用和分析工具提供实时数据访问。主要内容包括:InA协议的作用是将HANA计算视图等模型通过HTTP(S)暴露为实时数据源;SAP HANA Analytics Adapter(xsahaa)是关键组件,负责协议转换和连接管理;部署包含本地和云端两种形式,均需建立XSA空间与租户数据库的映射;实施前需准备HDI容器、适配器构建和网络验证;安全方面通过XSA用户角色和HDI授权双重控制;文章还提供了与SAP Analytics Clo

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 259

红色警戒2心灵终结[语音转文本][笔记] 达摩语音识别本地+处理wav 笔记 20260307

摘要:本文介绍了一个用于处理《红色警戒2》心灵终结MOD中EVA语音的Python脚本工具。该工具采用达摩院FunASR Paraformer英文模型,可自动扫描根目录及子文件夹下的WAV音频文件,并按阵营(苏联、盟军、厄普西隆、焚风)分类输出识别结果为TXT文本。脚本实现了自动下载语音识别模型、批量处理音频文件、错误记录等功能,支持显示处理进度和统计信息,为游戏MOD开发提供便捷的语音文本化解决方案。

m0_67479857的博客 97

13、Java 中 MQTT 异步通知与回调的使用及传感器命令处理

本文详细介绍了在 Java 中使用 MQTT 的异步通知与回调机制,并展示了如何通过 Paho Java 客户端处理与传感器交互的命令。文章包含代码示例,讲解了 MQTT 客户端的连接、订阅、消息处理以及模拟传感器数据发布的过程,适用于希望在 Java 应用中实现 MQTT 通信与设备控制的开发者。

eee77的博客 160

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Rage(PC) Modding Notes : Console Commands

_________________________________________ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Rage(PC) Modding Notes : Console

tailiangliang的专栏 2341

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Windows系统配置错误提权实战:从原理到利用与防御

权限提升是网络安全攻防中的核心环节,它指攻击者在获得初始低权限访问后,通过技术手段获取更高系统权限的过程。其原理在于利用系统组件、服务或配置中存在的权限间隙,例如弱访问控制或不当配置。这项技术的价值在于能有效评估和加固系统安全,防止内部威胁扩散。在应用场景上,它广泛用于渗透测试、红蓝对抗和系统安全审计。本文聚焦于Windows环境中因服务路径、计划任务、注册表等配置疏漏导致的提权风险,并详细介绍了使用WinPEAS、PowerUp等工具进行自动化侦查与利用的方法,同时提供了加固防御的实践指南。

weixin_34268579的博客 293

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

企业文档库密钥泄露防护:集成TruffleHog与SharePoint自动化扫描方案

在软件开发和运维领域,密钥与敏感信息管理是数据安全的核心环节。硬编码的API密钥、数据库密码等凭证一旦泄露,可能导致严重的安全事件。其原理在于攻击者可通过扫描公开或内部存储库获取这些凭证,进而未经授权访问关键系统。为应对这一风险,自动化密钥检测技术应运而生,它通过模式匹配与API验证,持续扫描代码与文档中的敏感信息,其技术价值在于将被动防御转为主动监控,大幅降低人工审计成本。在应用场景上,企业协作平台如SharePoint文档库常成为安全盲区,开发人员可能无意中将含密钥的配置文件上传至此。本文聚焦于将开源密

anchang7456的博客 364

一个支持复杂筛选条件的复制工具

这篇文章介绍了一个名为FileMoverPro的文件管理工具,主要功能包括: 智能文件筛选 支持多种条件组合(后缀名、文件大小、白名单/黑名单关键词) 可保存筛选条件为模板 自动过滤空文件 文件传输功能 支持复制/移动操作 三种保存模式:保持原结构/按日期平铺/按日期保留结构 断点续传功能 速度限制选项 其他特点 跨平台支持(Linux/Windows优先) 任务记忆功能 系统托盘支持 操作日志记录 文章还提供了完整的Python源代码和打包脚本build.py,后者通过排除未使用的模块来减小程序体积。

weixin_43985754的博客 335

enumerate之大文件行数统计

count=0 data=open(filepath,‘r’) for k,v in enumerate(data): count+=1 print(count)

weixin_43890188的博客 304

文件处理技术

文件是在应用程序的实例之间存储数据的一种便利方式,也可以用于在应用程序之间传输数据。文件可以存储用户和应用程序配置,以便在下次运行应用程序时检索它们。定界的文本文件(例如用逗号分隔的文件)由许多旧系统使用;为了与这些旧系统进行交互,还需要了解如何处理定界数据。.NET Framework 提供的工具可以在应用程序中有效地使用文件。 一、流: 在.NET Framework 中进行的所有输入和输

Ritern的博客 903

C# 文件操作详解(三)Directory类

前面两篇介绍了File类和FileInfo类,对于文件的操作基本够用,但是后面还会补充一下FileStream相关的操作,例如StreamReader和StreamWriter的内容。本文主要介绍Directory类的使用,让我们一起看一下Directory类为我们提供了哪些操作。   Directory类  提供了大量的操作目录的静态方法,下面我们一一学习一下。   1、创建目录

luoyanqing119的专栏 1万+

文件夹遍历函数enumeratorAtURL的使用小结

我们获取文件夹的所有文件时,有时需要过滤掉隐藏文件等等操作那么函数:enumeratorAtURL 无疑是一个很好用的函数其里面的两个参数,includingPropertiesForKeys 和 options 可以很好的帮助我们进行很好的设置includingPropertiesForKeys是一个包含属性的数组,比如:NSURLIsDirectoryKey,这个属性就可以帮助我们获取文件是否...

flame_007的博客 1341

iOS NSFileManager 使用详解

使用NSFileManager 文件系统接口 允许访问文件夹内容 创建 重命名 删除文件 修改文件和文件属性,以及Finder对所有文件系统任务执行的一般操作。 访问NSFileManager,使用共享的管理器对象 NSFileManager *fileManager = [NSFileManager defaultManager]; 允许对NSFileMa...

ddiv24492的博客 400
上一篇: Creat folders -创建文件夹
下一篇: delete Files and Folders(删除文件、文件夹)
berained
博客等级 码龄20年 14粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值