python包-glob

glob 是一个内置模块, 其提供了一个函数用于从目录中搜索匹配的文件路径名模式,它可以帮助你快速找到符合条件的文件路径。

递归查找所有文件的利器。

glob

使用 glob 模块需要先导入:

1
import glob

然后可以使用 glob.glob() 函数来搜索匹配的文件路径,该函数接受一个文件路径模式作为参数,返回符合模式的所有文件路径列表

以下是 glob 模块的一些示例用法:

  1. 查找当前目录下所有的 .txt 文件:
1
2
3
4
import glob

txt_files = glob.glob("*.txt")
print(txt_files)
  1. 查找指定路径下所有的 .py 文件:
1
2
3
4
import glob

py_files = glob.glob("/path/to/dir/*.py")
print(py_files)
  1. 查找多个后缀名的文件:
1
2
3
4
import glob

files = glob.glob("*.[png,jpg,gif]")
print(files)
  1. 查找所有子目录下的所有 .txt 文件:
1
2
3
4
5
6
import os
import glob

base_path = "/path/to/dir"
txt_files = glob.glob(os.path.join(base_path, "**/*.txt"), recursive=True)
print(txt_files)

在第四个示例中,我们使用了 os.path.join() 来构造完整的查询路径,并且设置了 recursive=True 来递归查找所有子目录(默认是 False ,即仅搜索指定目录中符合条件的文件路径名)。

两个*号

** 是一个特殊的通配符,在 glob 模块中表示匹配多级子目录。具体来说,** 可以匹配任意层数的子目录,例如:

  • /path/to/dir/**/*.txt:匹配 /path/to/dir 目录下以及其所有子目录中的所有 .txt 文件。
  • /path/to/dir/**/foo/*.txt:匹配 /path/to/dir 目录下以及其所有子目录中名为 foo 的子目录中的所有 .txt 文件。

需要注意的是,在 Windows 系统中使用 ** 时需要开启 recursive=True 参数,而在类 Unix 系统中则不需要(也就是说在 Unix 系统中用** 不用设置 recursive=True 参数 )。

参考文献

  1. Chat机器人
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2019-2024 Vincere Zhou
  • 访问人数: | 浏览次数:

请我喝杯茶吧~

支付宝
微信