是否可以将yaml文件转储到同一系统上的另一个目录中?

时间:2018-12-10 20:56:52

标签: python python-3.x ruamel.yaml

这是我在树莓派上的目录:

Home
  |__pi 
      |__test1
      |__test2
          |__  abc.py

我正在运行一个Python代码(abc.py),该代码可以编辑然后转储YAML文件。但是文件保存在同一目录中(即在test2中)。是否可以将YAML文件转储到另一个目录(即在test1中)? 如果是,那么请让我知道代码。

这是我的python代码:

import sys
from ruamel.yaml import YAML

inp = """\
# example
name:
  # details
  family: Smith   # very common
  given: Alice    # one of the siblings
"""

yaml = YAML()
code = yaml.load(inp)
code['name']['given'] = 'Bob'

yaml.dump(code, sys.stdout)

1 个答案:

答案 0 :(得分:0)

childIndex方法的第二个参数可以是<script> "use strict"; var btn_click = false; (() => { const modified_inputs = new Set; const defaultValue = "defaultValue"; // store default values addEventListener("beforeinput", (evt) => { const target = evt.target; if (!(defaultValue in target || defaultValue in target.dataset)) { target.dataset[defaultValue] = ("" + (target.value || target.textContent)).trim(); } }); // detect input modifications addEventListener("input", (evt) => { const target = evt.target; let original; if (defaultValue in target) { original = target[defaultValue]; } else { original = target.dataset[defaultValue]; } if (original !== ("" + (target.value || target.textContent)).trim()) { if (!modified_inputs.has(target)) { modified_inputs.add(target); } } else if (modified_inputs.has(target)) { modified_inputs.delete(target); } }); addEventListener("beforeunload", (evt) => { if (modified_inputs.size && !btn_click) { const unsaved_changes_warning = "Changes you made may not be saved."; evt.returnValue = unsaved_changes_warning; return unsaved_changes_warning; } }); addEventListener("") })(); document.getElementById("submit").onclick = function save() { btn_click = true; } </script> 之类的流,也可以是已打开文件的流:

.dump()

与使用Python3一样,您还拥有sys.stdout作为标准库的一部分,并且可以将with open('../code1/output.yaml', 'w') as fp: yaml.dump(code, fp) 作为第二个参数传递给pathlib

pathlib.Path

.dump()将被正确打开以进行写入和关闭。

(您也可以通过执行from pathlib import Path output = Path('../code1/output.yaml') yaml.dump(code, output) Path加载)