вызов позволит вам открыть дескриптор файла каталога просто отлично.

этот код может быть использован для блокировки каталога:

class LockDirectory(object):
    def __init__(self, directory):
        assert os.path.exists(directory)
        self.directory = directory

    def __enter__(self):
        self.dir_fd = os.open(self.directory, os.O_RDONLY)
        try:
            fcntl.flock(self.dir_fd, fcntl.LOCK_EX | fcntl.LOCK_NB)
        except IOError as ex:
            if ex.errno != errno.EAGAIN:
                raise
            raise Exception('Somebody else is locking %r - quitting.' % self.directory)

    def __exit__(self, exc_type, exc_val, exc_tb):
        self.dir_fd.close()

Но в соответствии с ответами на этот вопрос блокировка директории невозможна:Python: заблокировать каталог

Что не так с приведенным выше кодом?

Мне нужно только поддерживать текущую версию Linux. Нет Windows, Mac или другой Unix.

Ответы на вопрос(4)

Ваш ответ на вопрос