我想浏览目录树,找到包含扩展名为.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中的所有文件并将它们相加。 我想计算每个目录中的文件数量。
答案 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