使用Python计算所有文件夹/子文件夹中的所有文件

时间:2016-09-01 12:17:06

标签: python linux file count

最有效的方式计算Python中所有文件夹和子文件夹中的所有文件?我想在Linux系统上使用它。

示例输出:

  

(路径文件)

     

/ 2

     

/ bin 100

     

/ boot 20

     

/ boot / efi / EFI / redhat 1

     

...

     

/ root 34

     

...

应忽略没有文件的路径。

感谢。

2 个答案:

答案 0 :(得分:0)

import os

print [(item[0], len(item[2])) for item in os.walk('/path') if item[2]]

它返回文件夹/子文件夹元组列表,文件数量为/path

OR

import os

for item in os.walk('/path'):
    if item[2]:
        print item[0], len(item[2])

它打印文件夹/子文件夹和文件计数在/path

如果您想尝试更快的解决方案,那么您必须尝试合并:

os.scandir() # from python 3.5.2

递归迭代并使用:

from itertools import count

counter = count()
counter.next() # returns at first 0, next 1, 2, 3 ...

if counter.next() > 1000:
    print 'dir with file count over 1000' # and use continue in for loop

也许这会更快,因为我认为os.walk函数对你来说是不必要的事情。

答案 1 :(得分:-1)

您可以使用os.walk();

执行此操作
import os

for root, dirs, files in os.walk('/some/path'):
    if files:
        print('{0} {1}'.format(root, len(files)))

请注意,这也会包含隐藏文件,即以点(.)开头的文件。