首先要引入库
import fcntl
打开一个文件
f = open('./test')
对该文件加密:
fcntl.flock(f, fcntl.LOCK_EX)
这样就对文件test加锁了,如果有其他进程要对test进行加锁,则不能成功,会被阻塞,但不会退出程序。
解锁:
fcntl.flock(f,fcntl.LOCK_UN)
解锁后,其他进程就可以对该文件进行加锁了。
另外还有一种共享锁:acquire a shared lock
fcntl.flock(f,fcntl.LOCK_SH)
文件加锁捕捉异常
[python] view plain copy
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"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。