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



代码试图找出哪些文件是空的,哪些文件不是,并打印一个包含其状态(空/不空)的文件名列表。

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])
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))

如果您想再次遍历列表以获得空文件的数量,那么您可以按照Ellochka Cannibal建议的那样做,尽管如果您只计算文件数量,那么这是相当浪费的。要获得计数,只需在if语句中放入一个计数器变量:

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

相关内容

  • 没有找到相关文章

最新更新