@DrPalmer

Как написать код красивее, чем никак?

Скрипт опроса состояния бесперебойников, в upsc 2 бесперебойника, из каждого забираю 4 параметра.
Забираются они из команды, вывод такой:
root@router:/home/dmitry# upsc apcsmart 2>/dev/null
battery.charge: 100
battery.charge.low: 30
battery.charge.warning: 50
battery.runtime: 600
.... и тд

Решил сделать не правильно вот так:
import os
import subprocess
from twisted.internet import task, reactor

devices = subprocess.Popen(['upsc', '-l', '2>/dev/null'])
devices.wait()
timeout = 15.0

def doWork():
    for ups in devices:
        charge = [charge.append(grep 'battery.charge:'.split(' ')[-1])]
        runtime = [runtime.append(grep 'battery.runtime:'.split(' ')[-1])]
        voltage = [voltage.append(grep 'battery.voltage:'.split(' ')[-1])]
        txt_status = [txt_status.append(grep 'ups.status:'.split(' ')[-1])]

    status = 1 if [txt_status = 'OL' ] else status = 0; os.system("echo "+status+">> ~/tmp/ups.prom")
    os.system("echo "+charge+">> ~/tmp/ups.prom")
    os.system("echo "+runtime+">> ~/tmp/ups.prom")
    os.system("echo "+voltage+">> ~/tmp/ups.prom")
    pass

sup = task.loopingCall(doWork)
sup.start(timeout)
reactor.run()

Вопрос: можно ли....Как написать это лучше (красивее и тд), чтобы не было, например, повторений echo и записей в переменную по сто раз. Вдруг их станет не 4, а 10...?
  • Вопрос задан
  • 160 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы