Differences between revisions 1 and 4 (spanning 3 versions)
Revision 1 as of 2008-11-17 14:50:22
Size: 156
Editor: anonymous
Comment:
Revision 4 as of 2008-11-20 17:34:57
Size: 1787
Editor: SimonSchoof
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:

{{{#!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()
}}}

Alternate object oriented try

{{{#!python
#!/usr/bin/env python
import os,fnmatch,sys

# Usage:
# ./walkdir.py directory extension

#Class FileWalker
#Searches for files and can sort and print them

class FileWalker(object):
 def __init__(self,Dir, Ext):
  self.__fileList=[]
  self.__dir=Dir
  self.__ext=Ext
 def SearchFiles(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,decending=False):
  self.__fileList.sort()
  if decending:
  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.SearchFiles()
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()

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

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