我正在讀取一個文件並讀取它的內容並根據換行符創建一個散列。我已經能夠根據每一行的內容製作散列表,但是如何在下一個空白換行符之前根據所有內容創建散列表?以下是我到目前爲止。從一個文件中取多行並創建散列
輸入:
Title 49th parallel
URL http://artsweb.bham.ac.uk/
Domain artsweb.bham.ac.uk
Title ABAA booknet
URL http://abaa.org/
Domain abaa.org
代碼:
File.readlines('A.cfg').each do |line|
unless line.strip.empty?
hash = Hash[*line.strip.split("\t")]
puts hash
end
puts "\n" if line.strip.empty?
end
輸出:
{"Title"=>"49th parallel"}
{"URL"=>"http://artsweb.bham.ac.uk/"}
{"Domain"=>"artsweb.bham.ac.uk"}
{"Title"=>"ABAA booknet"}
{"URL"=>"http://abaa.org/"}
{"Domain"=>"abaa.org"}
所需的輸出:
{"Title"=>"49th parallel", "URL"=>"http://artsweb.bham.ac.uk/", "Domain"=>"artsweb.bham.ac.uk"}
{"Title"=>"ABAA booknet", "URL"=>"http://abaa.org/", "Domain"=>"abaa.org"}
你的問題是矛盾的。你有空格分隔''域名''和它的值,而在你的代碼中你用'「\ t」'分隔。所以你不應該能夠得到你所聲稱的輸出。 – sawa 2013-04-29 18:49:28
@sawa我認爲很明顯,輸入文件實際上是製表符分隔的,並且它不能在複製和粘貼之後存活。切換回標籤,我得到了聲稱的確切輸出。 – 2013-04-29 18:56:28
@sawa鑑於輸出,它非常清楚。你似乎在推測OP在說謊。 – 2013-04-29 19:03:27