Subversion Repositories svn.Prod repos

Rev

Rev 37 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. #! /usr/bin/env python3
  2. # =============================================================================
  3. # Create
  4. # name  : Andre Rikkert de Koe          date:   Apr 2011
  5. # descr : filefind
  6. #         This is a demo of programming in the Python language.
  7. #         Its part of a project to implement a program to create a directory
  8. #         tree similar to the output of the Unix find program.
  9. # EUID  : Any user who has read access to all the files being searched for.
  10. # run   : interactive
  11. #
  12. # Changes
  13. # name  :                               date:
  14. # descr : short description
  15. #
  16. # =============================================================================
  17.  
  18. import sys
  19. import os.path
  20.  
  21. # =============================================================================
  22. # Functions
  23. # =============================================================================
  24.  
  25. def Usage(mesg):
  26.         print ("Usage: " + progname + " directory")
  27.         print (mesg)
  28.  
  29. def traverse(directory):
  30.         curdir = os.getcwd()
  31.         os.chdir(directory)
  32.         curdir2 = os.getcwd()
  33.         files = os.listdir(curdir2)
  34.         for file in files:
  35.                 pfile = curdir2 + "/" + file
  36.                 if os.path.isdir(file) and not os.path.islink(file):
  37.                         print (pfile)
  38.                         traverse(file)
  39.                 else:
  40.                         if os.path.isfile(file) or os.path.islink(file):
  41.                                 print (pfile)
  42.                         else:
  43.                                 print ("WARNING: Could not process file " + pfile)
  44.         os.chdir(curdir)
  45.  
  46. def start_traverse(directory):
  47.         print (directory)
  48.         traverse(directory)
  49.  
  50. # =============================================================================
  51. # MAIN
  52. # =============================================================================
  53.  
  54. progname = os.path.basename(sys.argv[0])
  55. if (len(sys.argv) == 2):
  56.         directory = sys.argv[1]
  57.         if os.path.isdir(directory):
  58.             start_traverse(directory)
  59.         else:
  60.             Usage("ERROR: Not a directory : " + directory)
  61. else:
  62.         Usage("ERROR: 1 argument expected")
  63.