Ber*_*and 5 python windows directory locking
我希望能够在Windows下锁定目录访问.以下代码适用于POSIX系统下的文件或目录:
def flock(fd, blocking=False, exclusive=False):
if exclusive:
flags = fcntl.LOCK_EX
else:
flags = fcntl.LOCK_SH
if not blocking:
flags |= fcntl.LOCK_NB
fcntl.flock(fd, flags)
Run Code Online (Sandbox Code Playgroud)
但我只找到一种方法来执行文件的锁访问,而不是使用以下代码执行目录:
def flock(fd, blocking=False, exclusive=False):
if blocking:
flags = msvcrt.LK_NBLCK
else:
flags = msvcrt.LK_LOCK
msvcrt.locking(fd.fileno(), flags, os.path.getsize(fd.name))
Run Code Online (Sandbox Code Playgroud)
您是否知道如何改进此代码并能够锁定目录访问?
贝特朗
您可能可以执行类似的操作来使用后一个集群函数间接锁定目录。
for file in os.listdir(dir):
f = open(file)
flock(f)
Run Code Online (Sandbox Code Playgroud)
这是一个受限版本,因为用户将能够在目录中创建新文件。