如何用Python修改函数实现E2设备按键值仅保存5个且循环覆盖
解决方案
要实现最多保存5个值、循环替换旧值的需求,我们可以通过读取现有值→维护固定长度的列表→写入更新后的值的逻辑来修改函数:
def saveKey(key): max_count = 5 cleaned_key = str(key.replace("|", "")) keys = [] try: # 读取已保存的所有值(如果文件存在) with open("/etc/savekeys", "r") as f: keys = [line.strip() for line in f if line.strip()] except FileNotFoundError: # 文件不存在时,直接使用空列表 pass except: # 其他读取异常时,重置为空列表 keys = [] # 添加新值并保持列表长度不超过max_count keys.append(cleaned_key) if len(keys) > max_count: # 超过5个时,移除最旧的第一个值 keys.pop(0) # 写入更新后的所有值 try: with open("/etc/savekeys", "w") as f: f.write("\n".join(keys)) except: pass
关键逻辑说明:
- 使用
with语句管理文件,自动处理文件关闭,比手动close()更安全 - 读取文件时按行解析已保存的键值,过滤空行避免无效数据
- 添加新键后,若列表长度超过5则移除第一个元素(最旧的值),保证始终只保留最新的5个值
- 写入时用换行符分隔每个值,便于后续读取和查看
内容的提问来源于stack exchange,提问作者Fair Bird
相关产品推荐
相关产品推荐

