计算文件和递增变量Python

时间:2013-05-31 19:50:27

标签: python for-loop syntax directory

尝试浏览驱动器上的每个文件夹,计算每个文件夹中的文件数,如果文件数大于或等于3,则递增计数。应该很容易吗?好吧,我已经彻底搞砸了,我不知所措。

import os, os.path, sys

rootdir = 'q:'

documentedcount = 0

for root, subFolders, files in os.walk(rootdir):
    filecount = len([name for name in os.listdir('.') if os.path.isfile(name)])
    print "Filecount = %s" % filecount
    if  filecount >= 3:
        documentedcount =+1
        print "Documented in the loop is %s" % documentedcount

print "Documented = %s" % documentedcount

它不希望超出根目录并进入任何子文件夹。它让我疯了,因为这应该很简单,但我似乎无法绕过它。

1 个答案:

答案 0 :(得分:2)

好吧,os.walk()不会在每次迭代时更改工作目录,所以行......

filecount = len([name for name in os.listdir('.') if os.path.isfile(name)])
启动脚本时,

...将始终计算当前工作目录中的文件数。

但是,有一个更简单的方法,因为os.walk()返回的每个元组中的第三项已经为您提供了目录中所有(非目录)文件的列表,因此您可以使用{{1 }} ...

len(files)