Python iglob按名称排序

Nic*_*ick 5 python sorting directory glob

我需要遍历一个潜在的非常大的目录(任意大).根据我的理解,常规glob.glob函数存储内存中所有匹配文件名的列表,但该glob.iglob函数使用迭代器.因此,使用常规glob.glob函数是不可能的,因为目录中可能有很多文件.

我的问题是以iglob看似随机的顺序遍历目录.我希望它按字母顺序迭代文件.我无法一次获得所有文件名的列表,只是对它们进行排序,所以我想知道是否有办法iglob按字母顺序迭代目录.

Mar*_*ers 5

不,没有,没有将目录的所有内容都读入内存.操作系统按目录顺序提供文件名,如果要对这些内容进行排序,则需要将内容完整地读入内存.

你可以后对结果进行排序iglob()匹配的文件,提供了一套足够小,通过调用来装入内存sorted()iglob()输出:

for filename in sorted(iglob(path)):
Run Code Online (Sandbox Code Playgroud)