📅  最后修改于: 2023-12-03 15:19:49.381000             🧑  作者: Mango
rglob
多个扩展在编程中,我们经常需要查找具有多个特定扩展名的文件。此时,Python自带的Path
类提供了一个非常有用的函数 rglob
,它可以递归地查找所有文件并允许使用多个扩展名进行匹配。
rglob
简介rglob
是 Path
对象的一个方法,所以要确保已导入 pathlib
模块。rglob
方法会递归遍历目录树,查找匹配的文件。rglob
方法接受一个字符串参数 pattern 作为过滤器模式,支持使用 glob 模式。下面是 rglob
的基本语法:
pathlib.Path.rglob(pattern)
其中,pattern
是匹配的过滤器模式,可以使用通配符 (*
),以及固定字符串来表示文件名或目录名的部分。
下面我们来看看,如何使用 rglob
方法,查找具有多个特定扩展名的文件。
import pathlib
extensions = ('.txt', '.md', '.py')
# 查找所有扩展名匹配的文件
for file in pathlib.Path('/path/to/directory').rglob('*'):
if file.suffix in extensions:
print(file)
上面的代码中,我们定义了一个包含多个扩展名的元组,然后使用 rglob
方法遍历目录树中的所有文件,并使用 if
语句判断文件的扩展名是否匹配。
其中,file.suffix
属性会返回文件的后缀名,用于匹配给定的扩展名。
以上代码运行效果如下:
/path/to/directory/file1.txt
/path/to/directory/file2.md
/path/to/directory/subdir/file3.py
/path/to/directory/subdir/file4.txt
使用 rglob
方法可以轻松地查找具有多个特定扩展名的文件,这对于需要遍历大型目录树的程序来说非常有用。同时,该方法还允许使用通配符和固定字符串进行文件名或目录名的部分匹配,方便快捷。