Pythonglob模块通配符示例
发布时间:2023-12-15 13:17:15
Python glob 模块提供了一种用于匹配文件路径的方法,类似于正则表达式。它可以帮助开发者快速获取目录中的文件列表,而无需使用复杂的遍历方法。
glob 模块中最常用的通配符有两个:* 和 ?。
- * 匹配任意数量的字符(包括0个字符)
- ? 匹配单个字符
让我们看一下具体的使用方法和示例:
首先,我们需要导入 glob 模块:
import glob
接下来,我们可以使用 glob.glob() 方法来匹配文件路径。此方法接受一个模式字符串作为参数,并返回与之匹配的文件列表。
### 示例1:匹配所有文件
我们可以使用 * 通配符来匹配所有文件:
files = glob.glob('*')
print(files)
输出结果可能是:
['file1.txt', 'file2.py', 'directory']
### 示例2:匹配特定文件类型
如果我们只关心特定类型的文件,我们可以使用 * 通配符配合文件扩展名来匹配这些文件:
files = glob.glob('*.txt')
print(files)
输出结果可能是:
['file1.txt', 'file2.txt']
### 示例3:匹配特定目录下的文件
我们还可以指定特定的目录路径来匹配文件。下面的示例将匹配 directory 目录下的所有文件:
files = glob.glob('directory/*')
print(files)
输出结果可能是:
['directory/file3.txt', 'directory/file4.py']
### 示例4:匹配特定字符
? 通配符可以用于匹配特定字符。下面的示例将匹配以 file 开头并且以任意字符结尾的文件:
files = glob.glob('file?')
print(files)
输出结果可能是:
['file1', 'file2']
### 示例5:递归匹配文件
如果我们想在目录中递归匹配文件,可以使用 ** 通配符。下面的示例将递归匹配 directory 目录及其子目录中的所有文件:
files = glob.glob('directory/**/*.txt', recursive=True)
print(files)
输出结果可能是:
['directory/file3.txt', 'directory/subdirectory/file5.txt']
注意:在使用 ** 通配符时,我们需要将 recursive 参数设置为 True。
这就是使用 glob 模块进行文件路径匹配的基本方法和示例。通过灵活运用通配符,我们可以快速、简便地获取目录中的文件列表。
