获取os.walk()的排序输出

时间:2017-10-17 12:18:01

标签: python os.walk

我有一段代码如下:

import os
for r,d,f in os.walk('/home/vibhor/Downloads'):
     print(r,len(f))

我需要对文件数量进行排序输出,根据子目录下的文件数量打印输出,我应该对代码做什么更改。

2 个答案:

答案 0 :(得分:2)

将数据保存在某个列表中,然后将其作为密钥长度进行排序。然后,您可以继续使用已排序的数据执行任何操作。

在下面的示例中,data包含已成对的目录和文件数。

data = [(r, len(f)) for r, d, f in os.walk('/home/vibhor/Downloads')]
data = sorted(data, key=lambda x: x[1])

答案 1 :(得分:2)

定义要用于排序的键,如下所示:

print(sorted([(r, d, f) for r, d, f in os.walk('/home/vibhor/Downloads')], key=lambda x: len(x[2]), reversed=True))

reversed=True按递减顺序给出答案。