📅  最后修改于: 2023-12-03 15:00:59.360000             🧑  作者: Mango
glob.iglob()
是 Python 中一个常用的方法,它可以找到指定文件路径下的所有符合指定规则的文件,返回一个可迭代的生成器。这对于处理文件路径和文件名有很大的帮助。
在使用 glob.iglob()
时,我们可能会遇到需要按特定顺序排列文件的需要。下面将介绍如何使用 Python 自带的 sorted()
方法根据文件名排序,以及如何使用 lambda
表达式对文件路径进行排序。
我们可以使用 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
表达式是一个用于创建匿名函数的 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
表达式,可以很方便地对文件路径和文件名进行排序。