Лучший способ проверить, заблокирован ли файл, - это попытаться заблокировать его. Модуль fcntl сделает это на Python, например,
fcntl.lockf(fileobj.fileno(), fcntl.LOCK_EX | fcntl.LOCK_NB)
Это вызовет IOError, если файл уже заблокирован; если это не так, вы можете позвонить
fcntl.lockf(fileobj.fileno(), fcntl.LOCK_UN)
Чтобы разблокировать его снова.
Обратите внимание, что в отличие от Windows, открытие файла для записи автоматически не дает вам эксклюзивной блокировки в Unix. Также обратите внимание, что модуль fcntl недоступен в Windows; вам нужно будет использовать os.open , который является гораздо менее дружественным, но более переносимым интерфейсом (и может потребовать повторного открытия файла).