【发布时间】:2018-09-26 19:04:27
【问题描述】:
我在 ruby 中有一个名为数组的数组,我在 yaml 文件中添加了值,但是在 file.yml 之后,它删除了我的 %YAML 1.1,所以我不会
yaml_string = File.read "file.yaml"
data = YAML.load yaml_string
array.each do |value|
data["title"] <<"- "+value+"\n"
end
output = YAML.dump data
File.write("file.yaml", output)
在执行之前,标头是存在的,但是在执行之后它会删除它(%YAML 1.1)并且所有行都用#注释,所以我不会
【问题讨论】:
-
只需使用 YAML。 load_file 函数,它将文件数据读入哈希。请注意,在较新的红宝石中,它位于 Psych 库中 ruby-doc.org/stdlib-2.4.0/libdoc/psych/rdoc/Psych.html
-
它不起作用 Traceback(最近一次调用最后一次):3:来自 ./test.rb:16:in
<main>' 2: from /usr/lib/ruby/2.5.0/psych.rb:497:inload_file' 1:来自 /usr/lib/ruby/2.5.0 /psych.rb:497:inopen' /usr/lib/ruby/2.5.0/psych.rb:497:ininitialize': 没有这样的文件或目录@rb_sysopen -
data = YAML.load_file yaml_string
-
文件是否存在?您可能遇到相对路径错误,即文件不在您的程序正在运行的目录中。
-
我已经给出了完整路径,上面只是一个例子,而且它告诉我文件太长......