У меня есть файл JSON, который помещается в /etc/папку системы Linux и содержит свойства маршрутизатора. Допустим, пользователь хочет изменить конфигурацию маршрутизатора и изменить IP-адрес интерфейса. Я работаю над скриптом python, который ведет опрос файла для изменений в файле JSON и извлекает новые данные, которые были изменены для дальнейшей обработки.
"device":
{
"device_image": "",
"password": "",
"interface": [
{
"interface_ip": "",
"interface_type": "",
"interface_name": "",
"interface_uid": ""
},
{
"interface_ip": "",
"interface_type": "",
"interface_name": "",
"interface_uid": ""
},
{
"interface_ip": "",
"interface_type": "",
"interface_name": "",
"interface_uid": ""
},
{
"interface_ip": "",
"interface_type": "",
"interface_name": "",
"interface_uid": ""
}
],
"username": "",
"device_id": "",
"ipaddress": "",
"gateway": "",
"device_name": "R1"
}
Есть ли простой способ сделать это?
Петля, открывающая файл, и чеканка для различий должна работать:
from time import sleep
from os import listdir
sleeptime = 5
if "old_json.json" in listdir("/path/"):
with open("/path/old_json.json/", "r") as f: old_json = f.read()
else:
with open("/path/json.json/", "r") as f: old_json = f.read()
while True:
with open("/path/json.json/", "r") as f: json = f.read()
if json != old_json:
print "json changed!"
old_json = json
with open("/path/old_json.json/", "w") as f: f.write(old_json)
sleep(sleeptime)
сдержанность в секундах