我想扫描目录树以查找包含扩展名为.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