使用Ruby,读取包含名称/值对的文件到哈希中

我有一个文件,每行都有一个名称/值对,我想打开文件,读取每一行并初始化一个哈希。

文件:

john, 234 joe, 2222 

并加载一个哈希,以便我可以遍历键值对。

 Hash[*File.read('f.txt').split(/[, \n]+/)] 
 Hash[File.read('some.txt').split("\n").map{|i|i.split(', ')}] 

要么

 Hash[File.read('some.txt').scan(/(.+?), (.+)/)] 
 file_data = {} File.open('some_file', 'r') do |file| file.each_line do |line| line_data = line.split(',') file_data[line_data[0]] = line_data[1] end end 

您可能希望添加一些validation,但这是完成所需操作的简单方法。

 f = < 

#split方法给出了一个看起来像[“john”,“234”,“joe”,“2222”]的数组。 *(AKA splat)运算符将此数组转换为一堆参数。 Hash#[]接受这一堆参数(当存在偶数个参数时)并传递一个哈希值。