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

运行时修改其他.py文件的变量并持久化保存改动的实现方法

解决方案

你可以通过将修改后的snippet_list序列化为合法的Python代码,覆盖写入原snippets.py文件实现持久化保存,参考实现如下:

完整示例代码

import snippets

def save_snippets_to_file():
    # 构造合法的Python变量定义代码
    code_content = "snippet_list = [\n"
    for item in snippets.snippet_list:
        # 自动选择适配的引号包裹元素,规避内部引号转义问题
        if '"""' in item and "'''" not in item:
            quote = "'''"
        else:
            quote = '"""'
        code_content += f"    {quote}\n"
        code_content += item.rstrip('\n')
        code_content += f"\n    {quote},\n"
    code_content += "]"
    
    # 写入到磁盘文件
    with open("snippets.py", "w", encoding="utf-8") as f:
        f.write(code_content)

# 测试修改
snippets.snippet_list.append('''```lua
function FuncC()
    -- do C things
end
```''')

# 调用保存方法持久化改动
save_snippets_to_file()

注意事项

  • 上述基础实现仅适用于snippets.py中仅包含snippet_list这一个变量定义的场景,如果文件中还有其他代码,你需要先读取原文件内容,通过正则匹配定位到snippet_list的定义区间,仅替换对应区间的内容即可,避免覆盖其他代码。
  • 你原有示例中的遍历代码存在错误,正确写法应为for snippet in snippets.snippet_list:,不能直接遍历导入的snippets模块。
  • 如果列表元素中同时包含三重双引号"""和三重单引号''',你需要提前对内容中的同类引号做转义处理,避免生成的Python代码语法错误。

内容的提问来源于stack exchange,提问作者Adrian Hernando Solanas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:15:01