You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 18:27:20