.net column

.NET開発者のためのブログメディア

Rubyでファイル読み込みを行う方法とは?|手順を詳しく解説!

2020年07月08日
SE
Rubyでファイル読み込みを行う方法ってどんな方法ですか?
PM
Rubyにあるメソッドを使って行う方法です。この記事で詳しく見ていきましょう。

Rubyでファイルを読み込む方法とは?

Rubyを使い、ファイルの読み込みを行いたいときのコードを紹介します。今回はRubyに標準搭載されているターミナルを使った読み込み方法です。

Macのパソコンが必要になるので注意してください。まずは全体の流れを把握しましょう。

Rubyでテキストファイルを読み込む手順

テキストファイルを読み込むには、下記の手順で進めていきます。初めてRubyを勉強する人、これから勉強をしようと考えている人は、ぜひ試してみてください。

まず、Desktopに読み込みたいテキストファイルを用意します。次に、ターミナルを開いてDesktopに移動し、irbコマンドを入力します。

そして、ファイルを開く(読み込む)Rubyコードを入力し、読み込みたいテキストファイルが表示されたことを確認します。

Desktopに読み込みたいテキストファイルを用意する

拡張子が.txtのテキストファイルを作成します。自分の使いやすいエディタで構いません。Macの標準テキストエディタで作る場合は、そのまま保存すると拡張子が.rtfというリッチファイルテキストになってしまうので注意しましょう。

標準テキストエディタの場合は、メニューバーの中の「フォーマットタブ」から「標準テキストにする」を選択してから保存すると良いでしょう。

ファイルの内容とファイル名は任意のもので構いませんが、ファイル名はコード入力時に必要になるので覚えておきましょう。

ちなみに解説では、ファイルの内容は、ファイル・読み込み・テストとなっており、ファイル名は「test.txt」となっている場合を想定していきます。

ターミナルを開いてDesktopに移動する

ターミナル アプリを開いてDesktopに移動しましょう。

最初は「ユーザー名$」というホームディレクトリにいるのでcd Desktopと入力し、Desktopに移動します。表示が「Desktop ユーザー名$」となったら成功です。

irbコマンドを打つ

ターミナル上でirbと打ってください。irbの正式名称は、「Interactive Ruby」と呼ばれ、ターミナル上で対話的にプログラムを実行することができます。

入力し、irb(main):001:0>と表示されていることを確認できたら成功です。ここから先は、Rubyのコードを入力していきます。

irbモードを終了したい場合はexitと入力してください。ただし、事前にRubyで入力したコードによって、何らかのプログラムが実行中の場合はexitが効きません。その場合は、キーボードのcontrol + C、もしくはcontrol + Dを押しましょう。

ファイルを開く(読み込む)Rubyコードを打つ

ファイルを読み込むために必要なコードは全部で5行です。手順のサンプルを下記で紹介するので、1行ずつ実行してみてください。

イメージとしては、テキストファイルを指定してファイルを開き、中身を読み込み、中身を取り出して表示する、という流れになります。

File.open(‘test.txt’) do |file| の解説

1行目は、irb(main):001:0> File.open('test.txt') do |file|となります。
前半のFile.openは、Rubyのファイルクラスのopenメソッド を使う、ということです。

つまり、Rubyのファイルというカテゴリには、ファイルを開くためのopenというコマンドが最初から用意されている、という意味になります。

真ん中の('test.txt')は、カッコとシングルクォーテーションで囲われたファイルを指定する、というRubyのコードです。ファイル名を変更している場合は、test.txtではなく、変更した名称を入力してください。

後半の do |file| は、開いたファイルデータをfileという変数に格納する、というRubyのコードです。

「file」は変数のため任意の名前でも構いません。doの前後には半角スペースが入ります。よく全角スペースと間違えて入力するミスがありますので、十分に注意しましょう。

file.each_line do |subject| の解説

2行目は、irb(main):002:1* box.each_line do |subject|となります。

前半のfile.each_lineは、fileという変数に入ったデータを1行ずつ読み込みをする、というコードです。fileは変数なので、1行目で設定した変数名になります。変更した場合は、この部分も変更しなければいけません。

ちなみに読み込むコードはeach_lineだけではなく、1文字ずつ読み込むeach_charもあります。読み込みたい条件によって、使えるメソッドはたくさんあるので幅広い表現が可能です。

まずは、1行ずつ読み込みをするeach_line で基本文法を覚えると良いでしょう。

後半の do |subject|は、subjectという変数に1行ずつ読み込みをしたテキストデータを格納するコードです。この「subject」も変数のため、任意の名称でも構いません。また、doの前後は半角スペースが入りますので注意しましょう。

puts subject の解説

3行目は、irb(main):003:2* puts subjectとなります。puts subjectは、「subject」という変数の中にあるデータをputsメソッドを使って表示する、というコードです。

putsメソッドはRuby特有のコードで、変数の中身を取り出すというイメージを持つと理解しやすいでしょう。このputsを使うことで、ターミナル上にファイルの中身が表示されます。

「puts」と「subject」の間は半角スペースです。プログラミングでは半角スペースが基本になっており、全角スペースはエラーの原因になるため、基本的な文法を学んでいくのと同時に慣れていくと良いでしょう。

end の解説

4行目はirb(main):004:2> endになり、5行目もirb(main):005:1> endになります。5行目のendを入力し、enterを押せば、ファイルの中身が表示されます。4、5行目は同じなので、一緒に解説します。

プログラミングコードの中には、3行目のputsメソッド のように、1行だけで実行ができるコードもありますが、openeach_lineのようにendで範囲を締めくくってから実行できるコードがあります。

irbのような対話式の書き方だとわかりづらいかもしれませんが、今まで入力した5行のコードは、以下のような構造になっており、このように見ると「end」がどこに掛かっているか理解しやすくなります。

読み込みたいテキストファイルが表示されたことを確認する

5行目の次に表示された内容が、テキストファイルと同じであれば成功です。もしエラーになってしまったら、入力ミスがないか、半角スペースが抜けていないか、全角スペースになっていないか、など落ち着いて確認してみましょう。

irbでは一度実行してしまったら、戻って編集することはできません。もう一度最初から入力しましょう。

ちなみに便利な機能として、十字キーの上下を押すと今まで入力した履歴を選ぶことができます。その機能を使い、変数名だけを変更して再度実行をするなど、入力する量を少しでも減らしながらコーディングができるので、活用してみてください。

SE
Rubyのメソッドには多くのコードがあるのですね。
PM
このコードを使うことで、さまざまなアプリの機能に応用することができるようになります。

ファイルの読み込みを応用してみよう

以上が、Rubyでファイルの読み込みをする基本的なコードになります。

この基本構造を理解していれば、画像や他の拡張子の読み込みをしたり、1文字ずつ後ろにスペースを足して読み込みをしたりと、自分が作りたいアプリの機能に応用できます。

今回紹介したメソッド以外にも、Rubyには便利なメソッドがたくさん用意されています。irbは起動も終了も簡単で、手軽に楽しみながらRubyのコードを試すことができます。気になるメソッドがあったら気軽に試してみてはいかがでしょうか。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

求人一覧

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)