【python】文件锁fcntl模块

文件锁之fcntl模块

1. 例子

import sys
import time
import fcntl

class FLOCK(object):

    def __init__(self, name):
        self.fobj = open(name, 'w')
        self.fd = self.fobj.fileno()

    def lock(self):
        try:
            fcntl.lockf(self.fd, fcntl.LOCK_EX | fcntl.LOCK_NB)  # 给文件加锁,使用了fcntl.LOCK_NB
            print '给文件加锁,稍等 ... ...'
            time.sleep(20)
            return True
        except:
            print '文件加锁,无法执行,请稍后运行。'
            return False


def unlock(self):
    self.fobj.close()
    print '已解锁'

if __name__ == "__main__":
    print sys.argv[1]
    locker = FLOCK(sys.argv[1])
    a = locker.lock()
    if a:
        print '文件已加锁'
    else:
        print '无法执行,程序已锁定,请稍等'

集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

创建格式:

parame = {value01,value02,...}
set(value) #或者

集合内置方法完整列表:

 

1. 实例

fruits = {"apple", "banana", "cherry"}
fruits.add("orange") 
print(fruits)

输出:

{'apple', 'banana', 'orange', 'cherry'}

 

2. 实例

thisset = set(("Google", "Runoob", "Taobao"))
thisset.clear()
print(thisset)

输出:

set()

 

参考资料

1. 文件锁fcntl模块

posted @ 2023-06-01 22:11  苏格拉底的落泪  阅读(16)  评论(0编辑  收藏  举报