如何使用 Python 的 glob 模块按模式查找文件
Python 中的 glob
模块是一个强大的工具,可用于查找符合指定模式的文件和目录。当您需要在目录中搜索具有特定扩展名或名称的文件时,它特别有用。本文将指导您使用 glob
模块高效地查找文件。
glob
模块简介
glob
模块提供了一种使用 Unix shell 样式通配符列出文件和目录的方法。这对于文件搜索、批处理等任务非常有用。该模块包含允许您将文件名与模式匹配的函数,使文件管理更加容易。
glob 的基本用法
要使用 glob
模块,您需要导入它,然后使用 glob.glob()
函数查找与模式匹配的文件。您使用的模式可以包括通配符,例如 *
(匹配任意数量的字符)和 ?
(匹配单个字符)。
示例
查找具有特定扩展名的文件
例如,要查找目录中所有带有 .txt
扩展名的文件,可以使用:
import glob
# Find all .txt files in the current directory
txt_files = glob.glob('*.txt')
print(txt_files)
在子目录中查找文件
要查找子目录中具有特定扩展名的所有文件,请在模式中指定子目录:
import glob
# Find all .jpg files in the 'images' subdirectory
jpg_files = glob.glob('images/*.jpg')
print(jpg_files)
使用通配符
通配符可以帮助您匹配更广泛的文件。例如,要查找以 "report" 开头的所有文本文件:
import glob
# Find all files starting with 'report' and ending with .txt
report_files = glob.glob('report*.txt')
print(report_files)
查找具有多个扩展名的文件
您还可以使用 glob
通过使用包含多个通配符匹配的模式来查找具有多个扩展名的文件:
import glob
# Find all .txt and .md files
files = glob.glob('*.txt') + glob.glob('*.md')
print(files)
高级用法
除了简单模式外,glob
模块还支持更复杂的模式。例如,您可以使用 **
之类的模式来递归搜索目录。
递归搜索
要在所有子目录中递归搜索文件,请使用 **
模式以及 recursive=True
参数:
import glob
# Find all .py files in the current directory and subdirectories
py_files = glob.glob('**/*.py', recursive=True)
print(py_files)
结论
glob
模块是 Python 中管理文件的重要工具,可让您轻松使用模式搜索文件。无论您是处理特定文件类型、搜索目录还是执行复杂搜索,glob
都能提供简单有效的解决方案。