需要将以下哈希打印到txt文件中,每个键作为文件名,每个键的值作为每个文件的内容。
哈希
{ 'a' => [ 'abc' , 'def', 'ghi'] , 'b' => [ 'jkl' , 'mno' , 'pqr' ] }
输出文件应具有以下格式
A.TXT
abc
def
ghi
b.txt
jkl
mno
pqr
想知道如何解决这个问题?
答案 0 :(得分:2)
hash = { 'a' => [ 'abc' , 'def', 'ghi'] , 'b' => [ 'jkl' , 'mno' , 'pqr' ] }
hash.each do |k,v|
File.open("#{k}.txt", 'w'){|f| f.puts v}
end
答案 1 :(得分:2)
我会使用File.write
:
hash = { 'a' => [ 'abc' , 'def', 'ghi'] , 'b' => [ 'jkl' , 'mno' , 'pqr' ] }
hash.each { |k, v| File.write(k, v.join("\n")) }
或者:
hash.each { |k, v| File.write(k, v * "\n") }
如果你想在最后一行的末尾回车,那么在循环中使用puts
的答案之一将起作用。一些应用程序关心是否有尾随行结束,其他应用程序则不关心。
答案 2 :(得分:1)
尝试类似:
hash.each do |key, vals|
File.open("#{key}.txt", 'w') { |file| file.puts *vals }
end
答案 3 :(得分:1)
hash.each do |key,value|
File.open("nameoffile.txt", "w"){ |file| file.puts value} #Opened file gets each value of correposnding hash key's
end
或只是
hash.each_value do |value|
File.open("nameoffile.txt", "w"){ |file| file.puts value} #Opened file gets each value of correposnding hash key's
end