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

Python中glob模块的高级用法和技巧

发布时间:2023-12-25 11:56:35

glob模块是Python提供的用于匹配文件路径的模块,它提供了一种简单、方便的方法来获取符合特定规则的文件路径列表。

1. 获取指定目录下的所有文件路径

使用glob模块的最基本用法是使用通配符*来匹配路径中的任意字符。可以使用glob.glob函数来获取指定目录下的所有文件路径。例如,要获取当前目录下所有的.py文件路径,可以使用以下代码:

import glob

python_files = glob.glob('*.py')
print(python_files)

这将返回一个包含所有.py文件路径的列表。

2. 匹配多个特定的文件类型

在通配符中使用[]可以匹配多个特定的字符。例如,可以使用[ab]来匹配a或b。还可以使用[0-9]来匹配0到9之间的任何一个数字。下面的代码示例演示如何使用glob模块匹配多个特定的文件类型:

import glob

files = glob.glob('*.[txt, csv]')
print(files)

这将返回一个包含所有.txt和.csv文件路径的列表。

3. 递归地匹配文件

glob模块还支持递归地匹配文件路径。可以使用**通配符来匹配任意子目录。以下示例演示如何递归地获取指定目录下所有的.py文件路径:

import glob

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

recursive参数设置为True可以递归地匹配文件路径,将返回一个包含所有.py文件路径的列表。

4. 排除指定文件路径

使用glob模块的exclude参数可以排除指定的文件路径。下面的代码示例演示如何获取指定目录下除了.py文件以外的所有文件路径:

import glob

files = glob.glob('*.*', exclude='*.py')
print(files)

这将返回一个包含除了.py文件以外的所有文件路径的列表。

5. 获取最新/最旧的文件路径

glob模块的sorted函数可以用于根据文件的创建时间或修改时间对文件路径进行排序。以下示例演示如何获取最新的文件路径:

import glob

files = glob.glob('*.txt')
latest_file = sorted(files, key=os.path.getctime)[-1]
print(latest_file)

这将输出最新的.txt文件路径。

6. 获取文件夹路径

使用glob模块还可以获取指定目录下所有文件夹的路径。以下代码示例演示如何获取当前目录下所有文件夹的路径:

import glob

directories = glob.glob('*/')
print(directories)

这将返回一个包含所有文件夹路径的列表。

总结:

以上是glob模块的一些高级用法和技巧,可以帮助你更灵活地使用glob模块匹配文件路径。你可以根据自己的需求选择合适的用法和参数来获取所需的文件路径列表。