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



我想扫描目录树以查找包含扩展名为.doc的单个文件的目录。忽略包含 2 个或更多相同文件类型的目录。

这是在带有python 2.7.x的Windows下。

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

c:\temp\dir1\file1.docc:\temp\dir1\file2.doc

但它应该在下面列出:c:\temp\dir2\file3.docC:\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

问题是它会计算所有目录中的所有文件并汇总它们。我想计算每个目录中的文件数量。

你可以使用"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

相关内容

最新更新