用于启用文件锁定的模块

lock的Python项目详细描述


锁定

这是一个启用文件锁定的模块。它使用fcntl来 完成这个。

posix操作系统实现咨询文件锁定。这使得 与同一文件交互而不发生冲突的并发进程, 如果他们首先检查存在的锁是否存在 不同的过程。可以在posix上启用强制文件锁定 通过使用mount-o mand选项和 使操作系统无法编辑锁定的文件。

fcntl功能由^{tt1}在python中实现$ 标准库模块。使用这个,可以以某种方式获取锁 如下所示:

lock_file=open("data.db","a")fcntl.lockf(lock_file,fcntl.LOCK_EX|fcntl.LOCK_NB)

如果文件被锁定,将引发以下异常:

BlockingIOError:[Errno11]Resourcetemporarilyunavailable

使用咨询锁定,代码应该测试A锁的存在。 在编辑文件之前。这是守则的责任,而不是 操作系统,以正确执行锁定。关于 可以通过传递字节来检索当前保存在文件上的锁 对象作为fcntl.fcntl函数的第三个参数 取代fcntl头中指向进程id的指针)。这个 锁信息的访问方式如下:

lock_data=struct.pack("hhllhh",fcntl.F_WRLCK,0,0,0,0,0)fcntl.fcntl(lock_file,fcntl.F_GETLK,lock_data)

如果文件上没有锁,则返回lock_data不变。

示例

下面的代码使用^{tt8}将字典保存到循环中的文件中$ 在保存时锁定文件:

importrandomimportlockwhileTrue:config={"a":1,"b":random.randint(1,2)}lock.save_JSON("config.json",config)

下面的代码使用 lock在加载时锁定文件:

importlockwhileTrue:config=lock.load_JSON("config.json")ifconfig:print(config)

这两段代码可以同时使用。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在构造函数外部添加鼠标侦听器   java如何使用比较器对列表进行排序以正确排序空值?   javajavax。由于javax,邮件“535.7.3身份验证失败”。邮件升级(v1.3.1至v1.5.2)   java将arraylist流到固定的二维数组中并打印?   RecyclerView适配器上的java上下文   java如何为此Twitter API为KafkaProducer建立连接   java Spring安全性重写WebSecurity配置适配器的配置(AuthenticationManagerBuilder)是否会影响全局应用程序?   线程“awteventque0”NullPointerException中的java异常   if条件中的null值和null指针异常java   java树集<Object>允许相同类型的多个对象   java定义类;我认不出   字符串java replaceAll()   JAVAutil。scanner(Java)读取文件时如何跳过空格?   java在swing中关闭flash屏幕   java在Wildfly 16中的应用程序中加载pk12文件   有没有工具可以自动生成屏幕抓取的Java代码   创建意图时,java方法getParcelableExtra()返回null   将数据从java传递到jsp   java Android Studio |永久保存布局