【发布时间】:2019-11-03 15:56:16
【问题描述】:
我正在尝试使用 ruamel.yaml 将以下 yaml 文件转储到多个(不同的)文件中:
C:
f:
# comment
- - l1
- l2: '5'
如果我尝试执行deepcopy,该评论会导致深度复制版本出错:
import copy
from ruamel.yaml import YAML
yaml = YAML()
conf = None
with open("input.yaml", 'r') as inf:
conf = yaml.load(inf)
conf2 = copy.deepcopy(conf)
with open("out1.yaml", 'w') as outf:
yaml.dump(conf, outf)
try:
with open("out2.yaml", 'w') as outf:
yaml.dump(conf2, outf)
print("all good")
except AssertionError:
raise SystemExit("Deep copy failed")
是否有替代方法可以将加载的带有此类 cmets 的 YAML 转储到多个文件中?
【问题讨论】:
-
预期目标是什么?您想将完全相同的 YAML 从一个文件复制到另一个文件吗?
-
我希望能够转储深度复制的 YAML。在我的完整场景中,我在转储它们之前对不同的深层副本执行不同的操作。
-
深度复制版本的错误(完整堆栈跟踪!)是什么?如果需要获取完整的堆栈跟踪,请删除 try/except。
-
@barny 这里是:pastebin.com/FipNEqqg
-
将其编辑到您的问题中。
标签: python yaml pyyaml ruamel.yaml