使用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#[]接受这一堆参数(当存在偶数个参数时)并传递一个哈希值。