os.walk 结合正则表达式收集目标文件的绝对路径

以下代码通过os.walk结合正则表达式收集目标文件的绝对路径。
file_scanner函数将返回一个迭代器,迭代器存放的是目标路径中所有符合正则表达式规则的文件名的绝对路径。有了文件路径就方便对文件进行其他操作了。

import os,re


def file_scanner(scanner_path,regex):
    file_collect = []                                   #用于存放匹配到的目标文件的完成路径
    for root,fold,files in (os.walk(scanner_path)):     #通过OS.walk来递归查找目标路径文件
        while len(files):                               #利用while循环判断当前目录是否存在文件
            content = files.pop()                       #如果存在文件则依次弹出文件名
            if re.match(regex,content,re.I):            #判断文件名是否符合正则表达式规则,不区分大小写
                file_collect.append(os.path.join(root,content))              #如果该文件符合正则表达式规则,则命中,并组合成绝对路径,并记录在列表中
    path_collect = iter(file_collect)                   #将记录文件路径的列表,转换为迭代器,提高性能

    return (path_collect)                               #函数执行完毕后,将返回上述迭代器,用作他用


if __name__ == '__main__':                              #函数执行开始的地方
#############################################
#              上面内容不要修改              #
#############################################




    scanner_path = r"c:\Test"                           #指定需要扫描的文件夹,根据自己需求修改
    regex = r"index.xls"                                #指定需要匹配文件的正则表达式regex对象,根据自己需求修改,此处匹配文件名为index.xls的文件,文件名不区分大小写




#############################################
#              以下面内容不要修改              #
#############################################
    file_scanner(scanner_path,regex)                    #调用函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值