最有效的方式计算Python中所有文件夹和子文件夹中的所有文件?我想在Linux系统上使用它。
示例输出:
(路径文件)
/ 2
/ bin 100
/ boot 20
/ boot / efi / EFI / redhat 1
...
/ root 34
...
应忽略没有文件的路径。
感谢。
答案 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)))
请注意,这也会包含隐藏文件,即以点(.
)开头的文件。