我在启动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
答案 0 :(得分:1)
请注意input()
从stdin读取。从init.d,rc.local或cron启动的程序将在 / dev / null 上打开stdin。这意味着input()
将引发EOFError。此外,input()
会破坏它所读取的行。这可能不是你想要的。所以你的代码至少有两个问题。
我无法提供解决方案,因为您还没有提供足够的信息。你是什么意思"一直等待输入"?从哪里输入?如果输入产生连续的数据流,你真的希望while
循环的主体运行得尽可能快吗?说过你可能想用简单的input()
替换sys.stdin.readline()
以避免使用隐式eval()
。