2010-12-16 32 views
5

我正在嘗試從文本文件中讀取數據並將其與帖子字符串連接起來。當文件中只有一行時,它可以正常工作。但有2行,我的請求失敗。 each_line是否讀取換行符?我該如何糾正它?ruby​​ each_line也讀取換行符?

File.open('sfzh.txt','r'){|f| 
f.each_line{|row| 
    send(row) 
} 

我的確用分離和額外的分隔符繞過了這個問題。但它看起來很醜。

回答

26

是的,each_line包含換行符。但是你可以很容易地使用chomp剝奪他們:

File.foreach('test1.rb') do |line| 
    send line.chomp 
end 
+1

+1 for'foreach',懶人'open ... each_line'。 :-) – 2010-12-17 03:53:38

+0

感謝姆拉登,它的工作原理。感謝Greg,這是一個額外的教訓 – Wenyang 2010-12-17 09:09:37

2

另一種方法是映射到strip每行返回它。要逐行讀取文件,剝掉空白並對每行執行一些操作,可以執行以下操作:

File.open("path to file").readlines.map(&:strip).each do |line| 
    (do something with line) 
end