0

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

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

2 回答 2

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))
于 2013-03-17T20:19:05.577 回答
1

如果您想再次遍历列表以获取空文件的数量,那么您可以按照 Ellochka Cannibal 的建议进行操作,尽管如果您只计算文件,那将是相当浪费的。要获得计数,您可以简单地在 if 语句中放置一个计数器变量:

c=0
...
for ...
  if (size == 0):
    status = ('EMPTY') 
    c += 1
于 2013-03-17T20:28:50.523 回答