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

Pythonglob模块的用法详解

发布时间:2023-12-15 13:10:35

Python的glob模块提供了一个用于查找文件路径的简单方法。它可以根据指定的规则匹配文件,并返回匹配的文件路径列表。

glob模块提供了以下几个常用的函数:

1. glob.glob(pathname, recursive=False)

- 参数pathname是用于匹配文件路径的字符串,可以包含通配符。

- 参数recursive是一个布尔值,表示是否递归地搜索子目录。默认值为False。

- 返回匹配的文件路径列表,如果没有匹配的文件,则返回一个空列表。

2. glob.escape(pathname)

- 参数pathname是用于转义的字符串。

- 返回转义后的字符串。

下面通过一些使用例子详细介绍glob模块的用法:

1. 查找当前目录下的所有txt文件:

import glob

txt_files = glob.glob('*.txt')
print(txt_files)

输出结果类似于:

['file1.txt', 'file2.txt', 'file3.txt']

2. 查找当前目录及其子目录下的所有py文件:

import glob

py_files = glob.glob('**/*.py', recursive=True)
print(py_files)

输出结果类似于:

['subdir/file1.py', 'file2.py', 'file3.py']

3. 查找当前目录下的所有文件:

import glob

all_files = glob.glob('*')
print(all_files)

输出结果类似于:

['file1.txt', 'file2.txt', 'file3.txt', 'subdir']

4. 查找当前目录下的所有文件和子目录:

import glob

all_files_and_dirs = glob.glob('*') + glob.glob('*/')
print(all_files_and_dirs)

输出结果类似于:

['file1.txt', 'file2.txt', 'file3.txt', 'subdir/']

5. 使用通配符匹配文件名:

import glob

txt_files = glob.glob('file?.txt')
print(txt_files)

输出结果类似于:

['file1.txt', 'file2.txt']

6. 使用通配符匹配文件路径:

import glob

py_files = glob.glob('**/file*.py', recursive=True)
print(py_files)

输出结果类似于:

['subdir/file1.py', 'file2.py']

需要注意的是,通配符*匹配任意字符串,而?匹配单个字符。

综上所述,glob模块提供了一个方便的方式来查找文件路径。它支持文件名和文件路径的通配符匹配,并且可以递归地搜索子目录。你可以根据自己的需求来构建匹配规则,并使用glob模块进行文件路径的查找。