我有一个连续运行的python进程,每隔1分钟从磁盘读取一个cfg文件。
run.py
while True:
parser = configparser.ConfigParser()
parser.read('config.ini')
time.sleep(60)
用户可以运行第二个修改config.ini
edit.py
def set_param(self, section, param, new_value):
parser = configparser.ConfigParser()
parser.read('config.ini')
current_cfg = parser[section][param] = new_value
with open('config.ini', 'w') as f:
current_cfg.write(f)
现在此代码应具有2个属性:
1)run.py
仅在未由edit.py
编辑的情况下才读取配置文件,换句话说,它应该等待功能set_param
完全执行。
2)随后对edit.py
的调用不应产生冲突。仅当文件不属于先前的调用时,才应执行新的调用。
我认为我需要类似锁定机制的东西。我一直在查看https://docs.python.org/3.8/library/fcntl.html,但不确定它是否正确,我正在努力了解如何使用它。
如何解决此问题?