Raspberry Pi не запускает скрипт Python, ожидая ввода сразу после запуска

У меня проблема с запуском скрипта Python сразу после запуска Raspberry Pi. Я пробовал с init.d, rc.local и cron. Ни один способ не сработал.

Мой скрипт ожидает ввода и сохраняет его в файл:

import datetime
path = '/my/path/to/file.csv'
while 1:
    name = input()
    date = datetime.datetime.now().strftime('%Y-%m-%d %H-%M-%S')
    presence = str(name) + ";" + str(date) + '\n'
    print(presence)

    file = open(path, "a+")
    file.write(presence)
    file.close()

Как я могу запустить его после запуска и скрипт будет все время ждать ввода.

Крон:

sudo crontab -e

@reboot python /home/pi/Desktop/myscript.py

rc.local:

python /home/pi/Desktop/myscript.py

1 ответ

Решение

Обратите внимание, что input() читает со стандартного ввода. Программа, запущенная из init.d, rc.local или cron, будет открывать стандартный ввод в / dev / null. Что значит input() поднимет EOFError. Также, input() излагает строчку, которую читает. Что, вероятно, не то, что вы хотите. Таким образом, у вас есть как минимум две проблемы с вашим кодом.

Я не могу предоставить решение, потому что вы не предоставили достаточно информации. Что вы имеете в виду "все время ждать ввода"? Вход откуда? Если ввод производит непрерывный поток данных, вы действительно хотите тело вашего while цикл работает так быстро, как он может выполнить? Сказав, что вы, вероятно, хотите заменить input() с простым sys.stdin.readline() чтобы избежать неявного eval(),

Другие вопросы по тегам