Raspberry Pi启动后不启动等待输入的python脚本

时间:2018-05-27 19:33:48

标签: python raspberry-pi raspberry-pi3 meta-raspberrypi

我在启动raspberry pi之后启动python脚本时遇到问题。我尝试使用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()

如何在启动后运行它,脚本将一直等待输入。

的Cron:

sudo crontab -e

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

rc.local中:

python /home/pi/Desktop/myscript.py

1 个答案:

答案 0 :(得分:1)

请注意input()从stdin读取。从init.d,rc.local或cron启动的程序将在 / dev / null 上打开stdin。这意味着input()将引发EOFError。此外,input()会破坏它所读取的行。这可能不是你想要的。所以你的代码至少有两个问题。

我无法提供解决方案,因为您还没有提供足够的信息。你是什​​么意思"一直等待输入"?从哪里输入?如果输入产生连续的数据流,你真的希望while循环的主体运行得尽可能快吗?说过你可能想用简单的input()替换sys.stdin.readline()以避免使用隐式eval()