Differences between revisions 2 and 6 (spanning 4 versions)
Revision 2 as of 2008-11-17 15:34:30
Size: 610
Editor: SimonSchoof
Comment:
Revision 6 as of 2008-11-21 15:55:27
Size: 1840
Editor: SimonSchoof
Comment:
Deletions are marked like this. Additions are marked like this.
Line 22: Line 22:
     fileList.sort()
     fileList.reverse()
fileList.sort()
fileList.reverse()
Line 25: Line 25:

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 an 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()
}}}

   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()

Alternative version with a class

   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 is able to sort an print a filelist 
   9 
  10 class FileWalker(object): 
  11  def __init__(self,Dir, Ext):
  12          self.__fileList=[]
  13          self.__dir=Dir
  14          self.__ext=Ext
  15          self.__initFileList()
  16  def __initFileList(self): 
  17         for root, dirs, files in os.walk(self.__dir):
  18                 f=fnmatch.filter(files,'*.'+self.__ext)
  19                 if type(f)==type([]):
  20                         for fi in f:
  21                                 fName=root+os.path.sep+fi
  22                                 fSize=os.path.getsize(fName)
  23                                 self.__fileList.append([fSize,fName])
  24  def getFileList(self):
  25         return self.__fileList
  26  def sortFileList(self,descending=False):
  27          self.__fileList.sort()
  28          print descending
  29          if descending:
  30                 self.__fileList.reverse()
  31  def printFileList(self,Cnt=None):
  32          if not Cnt is None :
  33                  for i in range(Cnt):
  34                         item=self.__fileList[i]
  35                         entry = str(item[0])
  36                         entry =entry+' '+item[1]
  37                         print entry
  38          else:
  39                 for item in self.__fileList:
  40                         entry = str(item[0])
  41                         entry =entry+' '+item[1]
  42                         print entry
  43 
  44         
  45         
  46 
  47 # Main 
  48 fw = FileWalker(sys.argv[1],sys.argv[2])
  49 fw.sortFileList(True)
  50 fw.printFileList()

LehreWiki: Python/Exercise3/Group1 (last edited 2009-01-19 14:59:54 by FabianGroße)