如何使用python扫描目录树来查找子文件夹

时间:2016-03-10 09:55:45

标签: windows list python-2.7

我想浏览目录树,找到包含扩展名为.doc的单个文件的目录。 忽略包含2个或更多相同文件类型的目录。

这是在使用python 2.7.x的Windows下。

因此,对于dir下面的实例包含2个具有相同扩展名的文件 - 脚本不应该列出这个目录:

C:\ TEMP \ DIR1 \的File1.doc C:\ TEMP \ DIR1 \ file2.doc

但是它应该在下面列出: C:\ TEMP \ DIR2 \ file3.doc C:\ TEMP \ something.doc 等

你能帮帮我吗?

我有这样的事情:

import os
noOfmp3 = 0
for root, dirs, files in os.walk('C:\\'):
for file in files:
    if file.endswith('.mp3'):
        noOfmp3 += 1
        if noOfmp3 > 1:
            print(os.path.join(root, file)), noOfmp3

问题在于它计算了所有dirst中的所有文件并将它们相加。 我想计算每个目录中的文件数量。

1 个答案:

答案 0 :(得分:0)

你可以使用“os.walk”,从字面上走过目录。 看看这个:

  

os.walk(top [,topdown = True [,onerror = None [,followlinks = False]]])

import os
from os.path import join, getsize
for root, dirs, files in os.walk('python/Lib/email'):
    print root, "consumes",
    print sum(getsize(join(root, name)) for name in files),
    print "bytes in", len(files), "non-directory files"
    if 'CVS' in dirs:
        dirs.remove('CVS')  # don't visit CVS directories

要详细了解这一点:https://docs.python.org/2/library/os.html