#acl AdminGroup:read,write,delete,revert EditorGroup:read,write StudentGroup:read,write All:read #format wiki #language de #pragma section-numbers off {{{#!python #!/usr/bin/env python import os,fnmatch,sys # Usage: # ./walkdir.py directory extension dir,ext=sys.argv[1],sys.argv[2] fileList=[] for root, dirs, files in os.walk(dir): f=fnmatch.filter(files,'*.'+ext) if type(f)==type([]): for fi in f: fName=root+os.path.sep+fi fSize=os.path.getsize(fName) fileList.append([fSize,fName]) fileList.sort() fileList.reverse() }}} Alternative version with a class {{{#!python #!/usr/bin/env python import os,fnmatch,sys # Usage: # ./walkdir.py directory extension #Class FileWalker #Searches for files and is able to sort and print a filelist class FileWalker(object): def __init__(self,Dir, Ext): self.__fileList=[] self.__dir=Dir self.__ext=Ext self.__initFileList() def __initFileList(self): for root, dirs, files in os.walk(self.__dir): f=fnmatch.filter(files,'*.'+self.__ext) if type(f)==type([]): for fi in f: fName=root+os.path.sep+fi fSize=os.path.getsize(fName) self.__fileList.append([fSize,fName]) def getFileList(self): return self.__fileList def sortFileList(self,descending=False): self.__fileList.sort() print descending if descending: self.__fileList.reverse() def printFileList(self,Cnt=None): if not Cnt is None : for i in range(Cnt): item=self.__fileList[i] entry = str(item[0]) entry =entry+' '+item[1] print entry else: for item in self.__fileList: entry = str(item[0]) entry =entry+' '+item[1] print entry # Main fw = FileWalker(sys.argv[1],sys.argv[2]) fw.sortFileList(True) fw.printFileList() }}}