📜  rglob 多个扩展 (1)

📅  最后修改于: 2023-12-03 15:19:49.381000             🧑  作者: Mango

rglob 多个扩展

在编程中,我们经常需要查找具有多个特定扩展名的文件。此时,Python自带的Path类提供了一个非常有用的函数 rglob,它可以递归地查找所有文件并允许使用多个扩展名进行匹配。

rglob 简介
  • rglobPath 对象的一个方法,所以要确保已导入 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 方法可以轻松地查找具有多个特定扩展名的文件,这对于需要遍历大型目录树的程序来说非常有用。同时,该方法还允许使用通配符和固定字符串进行文件名或目录名的部分匹配,方便快捷。