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 に答える