1

我在启动树莓派后启动 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()

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

克朗:

sudo crontab -e

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

rc.local:

python /home/pi/Desktop/myscript.py

4

1 回答 1

1

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

我无法提供解决方案,因为您没有提供足够的信息。您是什么意思“一直等待输入”?从哪里输入?如果输入产生连续的数据流,您真的希望while循环体尽可能快地运行吗?话虽如此,您可能想input()用一个简单的替换sys.stdin.readline()来避免隐含的eval().

于 2018-05-28T03:58:59.360 回答