欢迎访问宙启技术站
智能推送

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 模块进行文件路径匹配的基本方法和示例。通过灵活运用通配符,我们可以快速、简便地获取目录中的文件列表。