使用Glob()在Python中递归地查找文件

Python 3.5+

 

从Python版本3.5开始,glob模块支持该"**"指令(仅当您传递recursive标志时才会解析该指令):

 

import glob

for filename in glob.iglob('src/**/*.c', recursive=True):
    print(filename)

如果你需要一个列表,只需使用glob.glob而不是glob.iglob。

import fnmatch
import os

matches = []
for root, dirnames, filenames in os.walk('src'):
    for filename in fnmatch.filter(filenames, '*.c'):
        matches.append(os.path.join(root, filename))

匹配以点(。)开头的文件的情况; 像当前目录中的文件或基于Unix的系统上的隐藏文件,请使用os.walk下面的解决方案。

 

Python 2.2到3.4

 

对于较早的Python版本,从Python 2.2开始,使用os.walk递归遍历一个目录并fnmatch.filter匹配一个简单的表达式:

 

 

Python 2.1及更早的版本

 

对于更老的Python版本,使用glob.glob每个文件名而不是fnmatch.filter。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值