代码尝试查找哪些文件为空以及哪些文件不是,并打印文件名列表及其状态(空/非空)。
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])
答案 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