Ruby

Ruby で今読み込んでいるファイルの行数を取得する

More than 5 years have passed since last update.

読み込んでいるファイルの行数は File#lineno を使えば取得できるのだが、けっこう忘れがち。


data.txt

hoge

huga
piyo

open("data.txt") {|f|

f.each_line do |line|
line.chomp!
puts "#{f.lineno}: #{line}"
end
}
# >> 1: hoge
# >> 2: huga
# >> 3: piyo

f.lines.each_with_index も使えなくはないが、こちらは1行目を0と数えるので適宜使いわけるといい。

行数取得のために一時変数をループの度にインクリメントしていたような人は是非覚えておこう。