こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、 RubyでCSVに上書きで書き込みするやり方について
- CSVに上書きで書き込みするやり方を解説
- 実際にCSVに書き込むサンプルプログラム
と、この記事で丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
Rubyのバージョン | 2.6.6 |
この記事ではRubyプログラムは
C:\rubystudy
に作成しています。
CSVに上書きで書き込みするやり方を解説
CSVに上書きで書き込みするやり方を解説します。
RubyでCSVを扱いたい場合
1 |
require 'csv' |
を、まず宣言しておく必要があります。
CSVに書き込むためには
- openメソッドで書き込むCSVを指定
- putsメソッドまたは<<配列演算子で書き込む
という段取りで書き込みます。
サンプルは以下になります。
1 2 3 4 |
CSV.open('sample.csv', 'w') do |sample| sample << [1, 2, 3] sample.puts [4, 5, 6] end |
それぞれの引数の意味は下記です。
上記を実行するとプログラムが格納している同じ場所の「sample.csv」が
1 2 |
1,2,3 4,5,6 |
という内容に上書きされます。
もしファイルがなければ、自動で生成されます。
openメソッドの第一引数に指定するパスは
- 相対パス
- 絶対パス
どちらでもOKです。
それぞれのパスについては、以下の記事をご参考ください。
第二引数の「w」の意味は、上書きで書き込みを行うという意味です。
では、次の章で実際に使ってみます。
CSVに上書きで書き込みを解説するプログラムの概要
CSVに上書きで書き込みを解説するプログラムはopenメソッドに指定するパスは
- 存在するCSV(絶対パス)
- 存在しないCSV(相対パス)
の2パターンで書き込みを行います。
実行前後でどうなっているのかを比較して確認します。
カレントディレクトリは
C:\rubystudy
として、同じ階層にrubyプログラムを作成します。
Rubyサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
require 'csv' puts "■CSV書き込みサンプル" puts "・存在するCSV(絶対パス)" CSV.open('C:\rubystudy\sample\hogehoge\test.csv', 'w') do |test| test << ["a", "b", "c"] test << ["d", "e", "f"] end puts "出力完了" puts puts "・存在しないCSV(相対パス)" CSV.open('./hogehoge.csv', 'w') do |test| test.puts ["g", "h", "i"] test.puts ["j", "k", "l"] end puts "出力完了" |
実行結果
CSVに上書きで書き込みを実行する前の状態を確認します。
C:\rubystudy\sample\hogehoge
に「test.csv」が存在していることを確認しました。
CSVの中身は以下のようになっています。
1 2 |
1,2,3,4 5,6,7,8 |
カレントディレクトリには「hogehoge.csv」が存在しないことを確認しました。
実行して本当にCSVに書き込みができているかを確認します。
Rubyプログラムを実行するやり方は、以下の記事をご参考ください。
1 2 3 4 5 6 |
■CSV書き込みサンプル ・存在するCSV(絶対パス) 出力完了 ・存在しないCSV(相対パス) 出力完了 |
無事実行できたので、それぞれを確認します。
C:\rubystudy\sample\hogehoge
の「test.csv」が実行前から更新されていて
中身が指定した内容に上書きできていることが確認できました。
1 2 |
a,b,c d,e,f |
カレントディレクトリには「hogehoge.csv」が作成されていて
中身が指定した内容に書き込みできていることが確認できました。
1 2 |
g,h,i j,k,l |
まとめ:CSVに上書きで書き込みをしてみよう!
以上がCSVに上書きで書き込みするやり方についての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント