如何从列表(v)中提取空文件的数量?

时间:2013-03-17 20:14:04

标签: python python-2.7 count empty-list

代码尝试查找哪些文件为空以及哪些文件不是,并打印文件名列表及其状态(空/非空)。

import fnmatch
import os
import pprint

#filenames_dic= {}
v = []

for root, dirnames, filenames in os.walk('P:/data/'):
    for filename in fnmatch.filter(filenames, '*.txt'):

        address=os.path.join(root,filename)
        size= os.path.getsize(address)
        if (size == 0):
            status= ('EMPTY')          

        else:
            status = (size)

        v.append([address,status])

2 个答案:

答案 0 :(得分:2)

number_of_empty_files = len([x[1] for x in v if x[1] == 'EMPTY'])

number_of_empty_files = len(filter(lambda x: x[1] == 'EMPTY', v))

答案 1 :(得分:1)

如果你想再次遍历列表以获得空文件的数量,那么你可以像Ellochka Cannibal所建议的那样做,但如果你只计算文件,那就相当浪费了。要获得计数,您只需在if语句中添加一个计数器变量:

c=0
...
for ...
  if (size == 0):
    status = ('EMPTY') 
    c += 1