pythonファイルロック

772 ワード

まずライブラリを導入する
import fcntl
ファイルを開く
f = open('./test')
ファイルの暗号化:
fcntl.flock(f, fcntl.LOCK_EX)
これによりファイルtestがロックされ、他のプロセスがtestをロックする場合は成功せず、ブロックされますが、プログラムは終了しません.
ロック解除:
fcntl.flock(f,fcntl.LOCK_UN)
ロックを解除すると、他のプロセスでファイルをロックできます.
もう1つの共有ロック:acquire a shared lock
fcntl.flock(f,fcntl.LOCK_SH)
ファイルロックスナップ例外
  1 #!/usr/bin/env python
  2 #coding:utf-8
  3 """
  4      
  5 """
  6 
  7 import fcntl
  8 import time
  9 
 10 try:
 11     fp = open('_filelock','w')
 12     fcntl.flock(fp.fileno(), fcntl.LOCK_EX | fcntl.LOCK_NB)
 13     print '       '
 14     time.sleep(50)
 15     fp.close()
 16 except IOError:
 17     print "lock"