Как лучше всего открыть файл для монопольного доступа в Python?

Решение должно работать внутри pythonista того же процесса (как в примере files выше), а также когда другой python-shell процесс открыл файл.

Если python-interpreter под «другим процессом» вы files подразумеваете «любой процесс» (то python-interpreter есть не вашу программу), в python-shell Linux нет способа сделать locking это, полагаясь только на python-shell системные вызовы (fcntl и друзья). Вам py нужен mandatory locking, и способ его получения file в Linux немного сложнее:

Перемонтируйте file раздел, содержащий ваш файл, с pythonista помощью параметра mand:

# mount -o remount,mand /dev/hdXY

Установите python-shell флаг sgid для своего файла:

# chmod g-x,g+s yourfile

В file вашем коде Python получите py эксклюзивную блокировку этого py файла:

fcntl.flock(fd, fcntl.LOCK_EX)

Теперь даже cat не сможет python-shell прочитать файл, пока вы не pythonic снимете блокировку.

python

file

locking

2022-11-06T00:12:27+00:00