Python中的Yaml合并

2024-05-14 09:03:37 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我想让自己(当然还有任何想使用它的人)成为Python for Pygame中的一个小样板库。我想要一个系统,其中的应用程序设置提供了一个yaml文件。

所以我认为,如果库提供了一个默认的yaml树并将其与用户提供的树合并,这将非常有用。出于可用性的考虑,我想知道是否有可能有人可以预测一个程序:

在用户提供的yaml与默认值重叠的树中,用户提供的分支将替换库提供的分支。

在任何情况下,如果用户提供的yaml与默认树不重叠,则默认树将继续存在。

附加用户提供的yaml在树中提供的任何超级分支。

我知道这个解释是冗长的,因为它可能很清楚我在要求什么。我想知道这是不是有点免费得到。


Tags: 文件用户程序应用程序yamlfor系统分支
1条回答
网友
1楼 · 发布于 2024-05-14 09:03:37

可以使用PyYAML来分析文件,然后使用以下函数合并两棵树:

def merge(user, default):
    if isinstance(user,dict) and isinstance(default,dict):
        for k,v in default.iteritems():
            if k not in user:
                user[k] = v
            else:
                user[k] = merge(user[k],v)
    return user

或者,可以在调用此函数之前对用户树执行deep-copy

相关问题 更多 >

    热门问题