Как написать автоскрипт на Python? - PullRequest
0 голосов
/ 01 июня 2018

Я получил показания температуры, давления и высоты на моем PI с помощью датчика:

  1. Проблема в том, чтобы увидеть результаты, мне нужно каждый раз выполнять code.pyсебя.Я пытаюсь как-то его автоматизировать, чтобы он продолжал работать сам, пока я хочу.
  2. Как только это будет автоматизировано, хотелось бы сохранить результаты и через некоторое время проанализировать вывод.

Можно ли как-нибудь написать код для обеих задач?

Спасибо.

Ответы [ 3 ]

0 голосов
/ 01 июня 2018

Здесь необходимы две вещи.Сначала скрипт, т.е. code.py, для регистрации функционального поведения, такого как temperature, pressure, and altitude показания, наряду с ошибкой / ответом во время процесса.Другой пример - журналы выполнения сценариев, т. Е. Успехи или неудачи в течение запланированного времени, а также другие системные журналы.

Для выполнения первой работы вы должны выполнять это самостоятельно, но при этом обязательно иметь модуль logger для регистрациипоток процесса.

Для второго задания вы можете использовать предоставляемый ОС планировщик crontab для Linux на основе ОС.Например, чтобы запускать сценарий каждую минуту

* * * * * python /home/script/code.py > /home/script/code.log 2>&1

Для получения дополнительной информации о заданиях планировщика вы можете сослаться здесь

0 голосов
/ 01 июня 2018

Я бы использовал дополнительный скрипт контроллера, такой как:

import subprocess;
import time;
import sys;

x = True;
while x:
    while exit_code!=0:
        try:
            exit_code = subprocess.check_call(['python', 'collect_data.py', '-cli_args_if_needed']);
        except:
            print(sys.exec_info()[1]);
            print('Relaunching in 5 seconds');
            time.sleep(5)
0 голосов
/ 01 июня 2018

Модуль времени - ваш друг здесь.Вы можете установить бесконечный цикл с помощью while True: и использовать time.sleep(secs) в конце цикла (после вывода).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...