好的,我把覆盆子pi挂在车库门上的磁传感器上。我有一个python脚本,每秒更新一个网站(initailstate.com)并报告更改,但它在25k请求后花了很多钱,我很快就杀死了大声笑。 我希望每次门的状态改变时更新文本文件。(打开/关闭)我有一个名为data.txt的文本文件。我有一个网页,使用java脚本读取txt文件,并使用ajax更新并检查文件的更改。这一切都按我想要的方式工作,但是如果且仅当文件的内容不同时,我怎样才能让python更新文本文件?
我希望在门改变状态后使用python更新文本文件。我可以使用数据库,但我认为文本文件更容易入手。 如果我不够具体,请告诉我你需要什么。
答案 0 :(得分:0)
也许你可以尝试这样的事情:
f = open("state.txt", "w+") # state.txt contains "True" or "False"
def get_door_status():
# get_door_status() returns door_status, a bool
return door_status
while True:
door_status = str(get_door_status())
file_status = f.read()
if file_status != door_status:
f.write(door_status)
答案 1 :(得分:0)
使用专属的小文件时,只需缓存其内容即可。这对您的存储来说更快,更健康。
# start of the script
# load the current value
import ast
status, status_file = False, "state.txt"
with open(status_file) as stat_file:
status = ast.literal_eval(next(stat_file()))
# keep on looping, check against *known value*
while True:
current_status = get_door_status()
if current_status != status: # only update on changes
status = current_status # update internal variable
# open for writing overwrites previous value
with open(status_file, 'w') as stat_file:
stat_file.write(status)