📜  glob.iglob 排序路径 - Python (1)

📅  最后修改于: 2023-12-03 15:00:59.360000             🧑  作者: Mango

以 glob.iglob 排序路径 - Python

glob.iglob() 是 Python 中一个常用的方法,它可以找到指定文件路径下的所有符合指定规则的文件,返回一个可迭代的生成器。这对于处理文件路径和文件名有很大的帮助。

在使用 glob.iglob() 时,我们可能会遇到需要按特定顺序排列文件的需要。下面将介绍如何使用 Python 自带的 sorted() 方法根据文件名排序,以及如何使用 lambda 表达式对文件路径进行排序。

使用 sorted() 方法排序

我们可以使用 Python 自带的 sorted() 方法对一个包含文件名列表的可迭代对象进行排序。下面是一个例子:

import glob

files = glob.iglob('/path/to/dir/*')
sorted_files = sorted(files)
for f in sorted_files:
    print(f)

这段代码会按照文件名的字母顺序输出文件路径。如果需要反向排序,只需要在 sorted() 方法中设置 reverse=True

使用 lambda 表达式排序

我们也可以使用 lambda 表达式对文件名进行排序。lambda 表达式是一个用于创建匿名函数的 Python 关键字。下面是一个用 lambda 表达式排序的例子:

import glob

files = glob.iglob('/path/to/dir/*')
sorted_files = sorted(files, key=lambda x: int(x.split('/')[-1].split('.')[0]))
for f in sorted_files:
    print(f)

在这个例子中,lambda 表达式 lambda x: int(x.split('/')[-1].split('.')[0]) 将每个文件路径进行了格式化,将文件名转换成整数类型并作为排序依据。如果需要按照其他属性进行排序,只需要修改 lambda 表达式即可。

总之,使用 glob.iglob() 加上 sorted() 方法或 lambda 表达式,可以很方便地对文件路径和文件名进行排序。