Python glob模块

Python glob模块

Python glob模块

在Python中,glob模块是一个用于查找与特定模式匹配的路径名的工具。它与操作系统命令中的glob函数非常相似,可以帮助我们在文件系统中快速查找符合特定规则的文件。

1. glob模块的基本用法

glob模块提供了一个glob函数,其语法如下:

glob.glob(pathname, recursive=False)
Python
  • pathname参数是一个包含了要匹配规则的路径字符串,可以使用通配符*?
  • recursive参数是一个布尔值,指示是否递归搜索子目录。默认为False

让我们通过一个简单的示例来演示glob模块的基本用法。假设我们有一个文件夹files,其中包含了一些文本文件:

files/
    ├── file1.txt
    ├── file2.txt
    ├── subfolder/
        ├── file3.txt
        └── file4.txt
Bash

现在我们想要找出所有以.txt结尾的文件,可以使用glob模块来实现:

import glob

txt_files = glob.glob('files/*.txt')

for file in txt_files:
    print(file)
Python

运行以上代码,输出如下:

files/file1.txt
files/file2.txt
Python

2. 使用通配符进行匹配

glob模块支持通配符*?,可以帮助我们更精确地匹配文件名。下面是一些常用的通配符用法:

  • *:匹配零个或多个字符。
  • ?:匹配任意单个字符。
  • []:匹配指定范围内的字符。

让我们通过一个示例来演示这些通配符的用法。假设我们想要找出所有以file1file2开头的文件,可以使用通配符*

import glob

files = glob.glob('files/file[12]*.txt')

for file in files:
    print(file)
Python

运行以上代码,输出如下:

files/file1.txt
files/file2.txt
Python

3. 递归搜索子目录

通过设置recursive=True参数,我们可以在子目录中递归搜索文件。让我们继续使用之前的文件目录结构,并尝试在所有子目录中查找.txt文件:

import glob

txt_files = glob.glob('files/**/*.txt', recursive=True)

for file in txt_files:
    print(file)
Python

运行以上代码,输出如下:

files/file1.txt
files/file2.txt
files/subfolder/file3.txt
files/subfolder/file4.txt
Python

4. 总结

glob模块是一个方便的工具,可以帮助我们在文件系统中快速查找符合特定规则的文件。通过使用通配符和递归搜索功能,我们可以更灵活地定位目标文件。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册