Python:在Windows下锁定目录访问

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)

您是否知道如何改进此代码并能够锁定目录访问?

贝特朗

kyl*_*oks 0

您可能可以执行类似的操作来使用后一个集群函数间接锁定目录。

for file in os.listdir(dir):
 f = open(file)
 flock(f)
Run Code Online (Sandbox Code Playgroud)

这是一个受限版本,因为用户将能够在目录中创建新文件。