1 #!/usr/bin/env python
2 import os,fnmatch,sys
3
4 # Usage:
5 # ./walkdir.py directory extension
6
7 dir,ext=sys.argv[1],sys.argv[2]
8 fileList=[]
9 for root, dirs, files in os.walk(dir):
10 f=fnmatch.filter(files,'*.'+ext)
11 if type(f)==type([]):
12 for fi in f:
13 fName=root+os.path.sep+fi
14 fSize=os.path.getsize(fName)
15 fileList.append([fSize,fName])
16 fileList.sort()
17 fileList.reverse()
Alternate object oriented try
1 #!/usr/bin/env python
2 import os,fnmatch,sys
3
4 # Usage:
5 # ./walkdir.py directory extension
6
7 #Class FileWalker
8 #Searches for files and can sort and print them
9
10 class FileWalker(object):
11 def __init__(self,Dir, Ext):
12 self.__fileList=[]
13 self.__dir=Dir
14 self.__ext=Ext
15 def SearchFiles(self):
16 for root, dirs, files in os.walk(self.__dir):
17 f=fnmatch.filter(files,'*.'+self.__ext)
18 if type(f)==type([]):
19 for fi in f:
20 fName=root+os.path.sep+fi
21 fSize=os.path.getsize(fName)
22 self.__fileList.append([fSize,fName])
23 def getFileList(self):
24 return self.__fileList
25 def sortFileList(self,decending=False):
26 self.__fileList.sort()
27 if decending:
28 self.__fileList.reverse()
29 def printFileList(self,Cnt=None):
30 if not Cnt is None :
31 for i in range(Cnt):
32 item=self.__fileList[i]
33 entry = str(item[0])
34 entry =entry+' '+item[1]
35 print entry
36 else:
37 for item in self.__fileList:
38 entry = str(item[0])
39 entry =entry+' '+item[1]
40 print entry
41
42 # Main
43
44 fw = FileWalker(sys.argv[1],sys.argv[2])
45 fw.SearchFiles()
46 fw.sortFileList(True)
47 fw.printFileList()