glob
模块是 Python 标准库中的一部分,提供了一个方便的方式来查找匹配特定模式的文件路径。glob.glob()
函数就是这个模块的核心,允许开发者使用 Unix 风格的路径名模式来查找文件。本文将详细介绍 glob.glob()
的用法,并给出代码示例。
基本用法
glob.glob()
函数的基本语法如下:
glob.glob(pattern, recursive=False)
pattern
:要匹配的文件模式,支持通配符(如*
,?
和[]
)。recursive
:布尔值,指示是否在子目录中递归查找。默认为False
。
常用通配符
*
:匹配零个或多个字符。?
:匹配一个任意字符。[]
:匹配指定范围内的字符,例如[a-z]
匹配所有小写字母。
示例代码
以下是一些使用 glob.glob()
的示例代码,包括不同的匹配模式和递归搜索的例子:
示例 1:匹配当前目录下的所有 .txt
文件
import glob
# 查找当前目录下的所有 txt 文件
txt_files = glob.glob('*.txt')
print("当前目录下的 txt 文件:", txt_files)
在这个例子中,*.txt
匹配当前工作目录下所有以 .txt
结尾的文件。
示例 2:使用通配符匹配特定模式的文件
import glob
# 查找当前目录下所有以字母 'a' 开头的文件
a_files = glob.glob('a*')
print("以'a'开头的文件:", a_files)
这个代码片段会寻找所有以 'a' 开头的文件名。
示例 3:在子目录中递归查找
从 Python 3.5 开始,glob
模块增加了支持递归查找的功能。可以使用 **
通配符进行递归匹配。
import glob
# 查找所有子目录及当前目录中的所有 .png 文件
png_files = glob.glob('**/*.png', recursive=True)
print("所有的 png 文件:", png_files)
这里,**/*.png
表示在当前目录及其所有子目录中查找所有 .png
文件。
示例 4:使用范围匹配
import glob
# 查找当前目录下的所有以数字结尾的文件
numbered_files = glob.glob('*[0-9]')
print("以数字结尾的文件:", numbered_files)
上面的代码展示了如何匹配以数字结尾的文件名。
注意事项
glob
返回的是一个列表,包含所有匹配的文件路径。如果没有匹配的文件,返回一个空列表。glob
不会返回被隐藏的文件(以点开头的文件),除非明确指定。- 在某些情况下,
glob
可能会与操作系统的文件系统配置有关,导致某些文件无法被检测到。
总结
glob.glob()
是一个功能强大的文件搜索工具,特别适合需要根据特定模式快速查找文件的场景。通过灵活使用通配符和递归选项,用户可以有效地定位所需的文件,极大地提高开发效率。在处理文件时,理解和掌握 glob
模块能够帮助你更轻松地完成相关任务。希望通过本文的介绍,能让你对 glob.glob()
的使用有更深入的理解。