Ruby 我可以操作yaml文件并再次写出它们吗

Ruby 我可以操作yaml文件并再次写出它们吗,ruby,yaml,Ruby,Yaml,我有一个值映射,键是一个文件名,值是一个数组字符串。 我有相应的文件 如何加载文件并创建包含数组值的固定yaml值,而不管该值是否已经存在 e、 g YAML(file.YAML) 或 从 红宝石 报告没有很好地介绍它的方法,但确实说 底层实现是libyaml包装器Psych 作为YAML的基础,包含读取、解析和发出YAML 以下是基本流程: require 'yaml' foo = {"file.yaml" => ["extra","intra","lateral"]} bar = f

我有一个值映射,键是一个文件名,值是一个数组字符串。 我有相应的文件

如何加载文件并创建包含数组值的固定yaml值,而不管该值是否已经存在

e、 g

YAML(file.YAML)

红宝石

报告没有很好地介绍它的方法,但确实说

底层实现是libyaml包装器Psych

作为YAML的基础,包含读取、解析和发出YAML

以下是基本流程:

require 'yaml'

foo = {"file.yaml" => ["extra","intra","lateral"]}
bar = foo.to_yaml
# => "---\nfile.yaml:\n- extra\n- intra\n- lateral\n"
下面是生成的、序列化的
bar
变量在写入时的外观:

puts bar
# >> ---
# >> file.yaml:
# >> - extra
# >> - intra
# >> - lateral
这是YAML解析器需要的格式:

baz = YAML.load(bar)
baz
# => {"file.yaml"=>["extra", "intra", "lateral"]}
在这一点上,散列已经进行了往返,从Ruby散列到YAML序列化字符串,再回到Ruby散列

使用Ruby的
文件将YAML写入文件很容易。write
方法:

File.write(foo.keys.first, foo.values.first.to_yaml)

这将生成一个名为“file.yaml”的文件,其中包含:

---
- extra
- intra
- lateral
要读取和解析文件,请使用YAML的方法


“”以及本页右侧的其他“相关”链接可能有用。

不太清楚您想做什么。
trg::方位:
来自哪里?它不在您的示例散列中,也没有在任何地方解释。trg::aziration:是我希望在yaml中看到的不会更改的静态值
baz = YAML.load(bar)
baz
# => {"file.yaml"=>["extra", "intra", "lateral"]}
File.write(foo.keys.first, foo.values.first.to_yaml)
foo.each do |k, v| 
  File.write(k, v.to_yaml)
end
---
- extra
- intra
- lateral
foo = YAML.load_file('file.yaml')
# => ["extra", "intra", "lateral"]