36.12. posixfile —具有锁定支持的类文件对象

从版本 1.5 开始不推荐使用:fcntl.lockf()调用可以更好,更方便地完成此模块提供的锁定操作。

该模块在内置文件对象上实现了一些其他Function。特别是,它实现了文件锁定,对文件标志的控制以及易于复制文件对象的接口。该模块定义了一个新的文件对象 posixfile 对象。它具有所有标准文件对象方法,并添加了以下描述的方法。该模块仅适用于某些 Unix 版本,因为它使用fcntl.fcntl()进行文件锁定。

要实例化 posixfile 对象,请使用posixfile.open()函数。生成的对象的外观和感觉与标准文件对象大致相同。

posixfile模块定义以下常量:

posixfile模块定义以下Function:

posixfile 对象定义了以下其他方法:

请求失败时,所有方法都会引发IOError

lock()方法的格式字符具有以下含义:

Format Meaning
u 解锁指定区域
r 请求指定部分的读锁
w 请求指定部分的写锁

另外,可以将以下修饰符添加到格式中:

Modifier Meaning Notes
| 等到授予锁
? 返回与请求的锁冲突的第一个锁;如果没有冲突,则返回None (1)

Note:

flags()方法的格式字符具有以下含义:

Format Meaning
a 仅附加标志
c 在 exec 标志上关闭
n 无延迟标志(也称为非阻塞标志)
s synchronization flag

另外,可以将以下修饰符添加到格式中:

Modifier Meaning Notes
! 将指定的标志“关闭”,而不是默认的“打开” (1)
= 替换标志,而不是默认的“ OR”操作 (1)
? 返回一个字符串,其中的字符表示所设置的标志。 (2)

Notes:

Examples:

import posixfile

file = posixfile.open('testfile', 'w')
file.lock('w|')
...
file.lock('u')
file.close()
首页