![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
はじめまして。
勉強中のRuby(2.0)で、
以下のようにCSVファイルの書式変換をしようとしています。
■変換前
# 入力ファイル1(input1.csv)
A, B, C, D
A1,B1,C1,D1
A2,B2,C2,D2
A3,B3,C3,D3
# 入力ファイル2(input2.csv)
B
C
■変換後(output.csv)
B, C, A, D
B1,C1,A1,D1
B2,C2,A2,D2
B3,C3,A3,D3
■変換内容
入力ファイル1に対して、入力ファイル2で指定された文字をヘッダーにもつ列を
順次先頭に移動していき、それを、出力ファイルとする。
■経緯
いろいろ試行錯誤をしながら、以下のような配列(output_ary)を
作るところまではできたのですが、
これをcsvに書き出す術がわからずにおります。
(カッコやダブルコーテーションがついたままになったり、
改行がされなかったり..)
(pp output_ary の結果)
pp output_ary
#=>[["B1","C1","A1","D1"],
["B2","C2","A2","D2"],
["B3","C3","A3","D3"],
["B4","C4","A4","D4"]]
お手数ですが どなたかご教示ください。
もちろん、「上記 output_ary のようなモノを作らなくてもこうすればできるよ」というご回答でもOKです。
よろしくお願いいたします。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_14.png?5a7ff87)
No.3
- 回答日時:
#2です。
windowsで実行する場合ですが改行コードがCR+LFでファイルへ追加書き込みが希望でしたら
ファイルオープン時、
CSV::open("output.csv","a") do |writer|
としてください。
改行コードがCR+LFでファイルへ上書き書き込みが希望でしたら(以前のファイルの内容は削除されます)
ファイルオープン時、
CSV::open("output.csv","w") do |writer|
としてください。
ありがとうございます。
希望通りの結果が得られました。
ブロックも入れ子にしてしまうのですね..
まだ 動きがよく飲み込めていない気がするので、じっくりと確認してみます。
この4日間ほど(笑) 悩んでたことが 今日一日 いや半日で解決して
とてもすっきりしました。
今後も 勉強に励みます。
たいへんありがとうございました!
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_14.png?5a7ff87)
No.1
- 回答日時:
----以下の行をあなたのプログラムに追加してください------
output_ary.each do |ar|
line = ar.join(",")
print line,"\n"
end
------------------------------------
上記で、画面に出力されます。
ファイルに出力する場合は、リダイレクトしてください。
tatsu99 さん。
ご回答をありがとうございます。
希望通りの CSVファイルが作成できました。
標準出力のリダイレクトででできるのですね..
ずっと
CSV::open("output.csv","a") do |writer|
writer << output_ary
end
..の方法で正しく出力する方法を考えておりました。
(できれば こちらの方法で出力する方法も覚えたいのですが.. ^^; )
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCEL 行内のデータを2行に分けて、表を作り直したいのです。教えてください。 5 2023/06/25 14:00
- Visual Basic(VBA) VBAで特定の場所にあるCSVファイル(複数)から特定場所を抜き出してExcelに転記したいです。 11 2023/05/23 16:29
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) スプレッドシートについて A1÷B1の値をC1に、A2÷B2をC2、A3÷B3をC3…といった感じで 1 2022/05/17 20:24
- HTML・CSS HTMLタグのあるCSVファイルを利用する方法 4 2023/03/19 14:41
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) エクセル VBA 条件付き書式 簡略化したい 2 2022/06/02 17:46
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PowerShellからGhostscriptを動...
-
【C#】 csvファイルをバイナリ...
-
Excelマクロ 空白セルを無視し...
-
【ExcelVBA】300万件越えCSVか...
-
Sikulix2.0.5(Jython2.7.3)でcs...
-
pythonのこのエラーがわかりません
-
ダブルコーテーション付きでCSV...
-
VBAでcsvファイルもシートもあ...
-
バッチファイルでCSVの中身を仕...
-
バッチファイルでcsvファイルに...
-
エクセルVBA Application.GetSa...
-
java CSVファイルの読み込みに...
-
VBAで複数のCSVからレコードセ...
-
ファイル名を変数で書きこむfwr...
-
複数のファイルをまたぐエクセ...
-
Access VBA エラー2448について
-
mother3の英訳パッチについて
-
SQLファイルの読み込み
-
「&」 「<<」 「|」 につ...
-
fortranでNAのあるデータを読み...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【ExcelVBA】300万件越えCSVか...
-
ダブルコーテーション付きでCSV...
-
Excelマクロ 空白セルを無視し...
-
VBAでcsvファイルもシートもあ...
-
VBAで複数のCSVからレコードセ...
-
ファイル名を変数で書きこむfwr...
-
CSVで余計な空行が入る
-
CSVデータの文字列置換
-
EXCEL→CSV保存時のダブルクォー...
-
VB.netでShellExecuteがしたい
-
エクセルの任意のシートをcs...
-
fortranでデータの抜き出しをし...
-
VBA csvファイルのデータを...
-
pythonでリストをCSVに出力する...
-
FileListBoxで出すものを絞り込...
-
複数のファイルをまたぐエクセ...
-
バッチファイルでcsvファイルに...
-
StringGridの中身をCSV形式で保...
-
vbaマクロについて 次のような...
-
rubyを用いたCSVファイルの分割...
おすすめ情報