Отказано в доступе при попытке записи файла с помощью FileLock, Python

Я пытаюсь написать двоичный файл и заблокировать доступ для других процессов, пока файл не будет полностью записан на диск. Я работаю над ОС Windows. Интересно то, что код работает нормально, если я пишу небольшие файлы (~ 1 КБ), но когда я пытаюсь написать файлы большего размера, Python выдает ошибку:

PermissionError: [Errno 13] Отказано в доступе.

with open(full_file_name, "wb") as f:
    lock = FileLock(full_file_name)
    with lock:
        f.write(bytearray(array))

person Denis Dmitriev    schedule 22.07.2020    source источник


Ответы (1)


Вы должны использовать файл ~.lock для блокировки файла.

lock = FileLock(full_file_name + ".lock")
with lock:
    with open(full_file_name, "wb") as f:
        f.write(bytearray(array))

Подробно ознакомьтесь с образцом кода официального документа на PyPi: https://pypi.org/project/filelock/< /а>

person akio.tanaka    schedule 22.07.2020
comment
Спасибо. Я пропустил этот .lock из документации. - person Denis Dmitriev; 23.07.2020