Форум сайта python.su
7
Здравствуйте. Имеется скрипт, который берет из текстового файла некий параметр, изменяет его затем и делает свою работу. Запусков скрипта может быть много, соответсвенно, надо чтобы они гарантированно не смогли попадать или испортить файл. То есть, чтобы следующий экземпляр ждал, пока файл освободится, а тогда с ним работал. Как это можно сделать?
Я покопал немного, и вроде это должно решаться через файловые дескрипторы, но вот ещё не могу понять как.
Отредактировано Master_Sergius (Май 28, 2014 18:24:25)
Офлайн
253
Master_SergiusТак он его кладет обратно в файл?.
берет из текстового файла некий параметр, изменяет его затем и делает свою работу
Офлайн
857
Master_SergiusМожно снаружи временный файл создать, существование которого будет проверяться. Это так процессы в лине делают, когда создают .pid файлы.
Как это можно сделать?
Офлайн
253
py.user.nextДумаю лучше велосипеды не изобретать:
Можно снаружи временный файл создать
Офлайн
7
Ну вот, смотрите, что Я пытаюсь сделать:
имею свою утилитку, которая выдает меседж в окошке (через Tkinter), подобно уведомлениям всяким (очень похоже на notify-osd в убунте)
Естественно, если один меседж уже появился, и в это время другой должен появиться, то тот другой должен быть смещен. Например, первое появляется на справа сверху, на расстоянии 100 пикселей, то второй, должен опуститься ещё на высоту первого меседжа + некое расстояние между ними. Потом так же третий меседж если что и так далее. Итого, получается, мне надо хранить где-то текущий отступ.
Или же, у вас есть другие предложения?
п.с. посмотрел описание той оригинальной утилиты notify-osd, там управляющий демон решает все проблемы 
Отредактировано Master_Sergius (Май 29, 2014 12:50:19)
Офлайн
253
Master_Sergius
Или же, у вас есть другие предложения?
Офлайн
221
Master_Sergius
я прям вижу здесь sqlite и, как следствие, отсутствие проблем.
Офлайн
58
JOHN_16
Аналогичное решение посоветовал Master_Sergius в личной переписке по скайпу…
Офлайн
7
Всем большое спасибо, уже работаю над интеграцией с SQLite
Офлайн