[Tutor] Hotfolder 1st attempt

Scott Ralph scott@zenplex.com
Mon, 06 Nov 2000 11:59:07 -0500


Hello,  I am a newbie and this is really my first attempt at writing
something useful for myself.  It's a simple hotfolder. Basically place a
file in and dosomething with it.  In the example it's a move to /tmp
using os.open.    I used some  example code from the stat library ref.
program called walker.  Just thought I'd get some feedback from the
group.

#!/usr/bin/env python

import os, sys
from time import *
from stat import *

# Start loop  by passing in a folder to monitor.  Example:
./hotfolder.py /home/scott/in_coming
# Use if statement with a +20 seconds to compare against system clock.
Used to check if file modification has stopped when copying.

def getDirContents(dir):
  while 1:
      for f in os.listdir(dir):
           pathname = '%s%s' % (dir, f)
           mode = os.stat(pathname)[ST_MODE]
           S_ISREG(mode)
           t = time()
           f = os.stat(pathname)[ST_MTIME]
           if f+20 < t:
               os.popen('mv %s %s' % (pathname, '/tmp/'))
           else:
               print 'not yet'
      else:
          sleep(5)


if __name__ == '__main__':
   getDirContents(sys.argv[1])

Scott