我有一个 .yaml
文件,我想用 Python 代码更新。假设它看起来像这样:
state: 'present'
我想要一个更改状态并保存文件的代码。我正在尝试这样的事情但失败了:
def set_state(state):
with open("file_to_edit.yaml", 'rw') as f:
doc = yaml.load(f)
doc['state'] = state
yaml.dump(f)
我正在使用 Python 的“yaml”包。
原文由 Pavel Zagalsky 发布,翻译遵循 CC BY-SA 4.0 许可协议
问题是
yaml.dump(doc)
实际上并没有写入文件。相反, 它将修改后的 YAML 作为字符串返回, 除非您也将文件描述符作为参数传递,这允许您直接写入文件。以下应该工作: