Tim Williams <[EMAIL PROTECTED]> wrote:
>  You can also do this by holding a file open in write mode until the
>  script has finished.
> 
>        try:
>             open('lock.txt','w')
>             my_script()
>       except:
>            #print script is already running

That only works under windows

  >>> f=open('lock.txt','w')
  >>> g=open('lock.txt','w')
  >>> f.write('hi')
  >>> g.write('ho')
  >>> f.close()
  >>> g.close()
  >>> open('lock.txt').read()
  'ho'
  >>> 

The best cross platform way to create a lock is creating a directory.
It is atomic on both windows and linux anyway.

  try:
    os.mkdir("lock")
  except OSError:
    print "locked!"
  else:
    try:
      do_stuff()
    finally:
      os.rmdir("lock")

(untested)

-- 
Nick Craig-Wood <[EMAIL PROTECTED]> -- http://www.craig-wood.com/nick
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to