Ruby ファイルを1行ずつ読み込む

Ruby ファイルを1行ずつ読み込む

Rubyで、openを使用して、ファイルを1行ずつ読み込むサンプルコードを記述してます。rubyのバージョンは2.7.2を使用してます。

環境

  • OS windows10 pro 64bit
  • ruby 2.7.2p137

open使い方

openを使用すれば、ファイルを1行ずつ読み込むことが可能です。

f = open("ファイル名")

以下は、hoge.txtの内容を読み取り表示するサンプルコードとなります。

hoge.txt

サンプルコード

f = open("hoge.txt")

f.each do |line|
  p line
end

f.close

# "hoge\n"
# "hoge\n"
# "hoge"

getsを使用して読み込むこともできます。

f = open("hoge.txt")

while line = f.gets
  p line
end

f.close

# "hoge\n"
# "hoge\n"
# "hoge"

行番号を付けて出力することも可能です。

f = open("hoge.txt")

while line = f.gets
  printf("%6d	%s", $., line)
end

f.close

# 1  hoge
# 2  hoge
# 3  hoge

eachとforeach利用

eachを使用すると、closeは自動で行ってくれます。

open("hoge.txt").each do |line|
  p line
end

# "hoge\n"
# "hoge\n"
# "hoge"

File.foreachも同様で、よりシンプルに記述することができます。

File.foreach("hoge.txt") do |line|
  p line
end

# "hoge\n"
# "hoge\n"
# "hoge"

ブロック構文を使用して、1行で記述することもできます。

File.foreach("hoge.txt") { |line| p line }

改行を取り除きたい場合は「chomp」を使用します。

open("add.txt").each do |line|
  p line.chomp
end