#! /usr/bin/env python # -*- coding: Shift_JIS -*- import sys import os import os.path from optparse import OptionParser class CheckEmptyDir: def __init__(self, callback ): self.__callback = callback def search(self, dirname ): dirname = os.path.normpath( dirname ) files = list( os.listdir( dirname ) ) files.sort() result = 0 for file in files: filenpath = os.path.normpath( dirname + "/" + file ) if os.path.isdir( filenpath ): result += self.search( filenpath ) else: if self.isAcceptableFile( file ): result += 1 if result == 0: self.__callback( dirname ) return result def isAcceptableFile(self, file ): return True usage="""使い方: %prog [options] [ディレクトリ ...] 指定したディレクトリ、および、その配下のサブディレクトリが空であるディレクトリをリストアップします。 空のディレクトリだけをもつディレクトリも空とみなされます。 """ parser = OptionParser( usage = usage ) (options, args) = parser.parse_args() if len(args) == 0: args.append( "." ) args.sort() def printemptydir( dirname ): print dirname searcher = CheckEmptyDir( printemptydir ) for dirname in args: searcher.search( dirname )