[#48023] 2つのCSVファイルの結合方法についてご質問 — askar k <tenzancode@...>
お世話になります。
6 messages
2011/05/01
[#48029] CSVファイルのデータをソートしたい — askar <tenzancode@...>
お世話になっています。
5 messages
2011/05/01
[#48044] Re: ruby 1.9.2とRails3 へのアップグレード — "Endo Akira" <endo4917@...>
アスカルさん
12 messages
2011/05/04
[#48045] Re: ruby 1.9.2とRails3 へのアップグレード
— "Y. NOBUOKA" <nobuoka@...>
2011/05/04
アスカルさん
[#48047] Re: ruby 1.9.2とRails3 へのアップグレード
— askar k <tenzancode@...>
2011/05/04
信岡さん
[#48048] Re: ruby 1.9.2とRails3 へのアップグレード
— askar k <tenzancode@...>
2011/05/04
ちょっと報告が早すぎたと思います。
[#48062] 小数点つき時刻情報とTime#parse — Mitsuo KASAHARA <m.kasahara13@...>
笠原ともうします。
18 messages
2011/05/09
[#48068] Re: 小数点つき時刻情報とTime#parse
— Tanaka Akira <akr@...>
2011/05/09
2011年5月9日10:29 Mitsuo KASAHARA <m.kasahara13@gmail.com>:
[#48070] Re: 小数点つき時刻情報とTime#parse
— EGUCHI Osamu <eguchi@...>
2011/05/09
えぐち@エスアンドイーです
[#48072] Re: 小数点つき時刻情報とTime#parse
— Tanaka Akira <akr@...>
2011/05/09
2011年5月9日13:43 EGUCHI Osamu <eguchi@sandeinc.com>:
[#48073] Re: 小数点つき時刻情報とTime#parse
— EGUCHI Osamu <eguchi@...>
2011/05/09
えぐち@エスアンドイーです
[#48074] Re: 小数点つき時刻情報とTime#parse
— Tanaka Akira <akr@...>
2011/05/09
2011年5月9日15:01 EGUCHI Osamu <eguchi@sandeinc.com>:
[#48075] Re: 小数点つき時刻情報とTime#parse
— EGUCHI Osamu <eguchi@...>
2011/05/09
2011年5月9日20:07 Tanaka Akira <akr@fsij.org>:
[#48076] Re: 小数点つき時刻情報とTime#parse
— Tanaka Akira <akr@...>
2011/05/09
2011年5月9日20:44 EGUCHI Osamu <eguchi@sandeinc.com>:
[#48077] Re: 小数点つき時刻情報とTime#parse
— EGUCHI Osamu <eguchi@...>
2011/05/09
2011年5月9日21:09 Tanaka Akira <akr@fsij.org>:
[#48078] Re: 小数点つき時刻情報とTime#parse
— Tanaka Akira <akr@...>
2011/05/10
2011年5月10日7:59 EGUCHI Osamu <eguchi@sandeinc.com>:
[#48092] 後継者募集 — MoonWolf <moonwolf@...>
MoonWolfです。
22 messages
2011/05/22
[#48095] Re: 後継者募集
— Youhei SASAKI <uwabami@...>
2011/05/23
MoonWolf 様: 佐々木と申します.
[#48096] Re: 後継者募集
— MoonWolf <moonwolf@...>
2011/05/23
MoonWolfです。
[#48100] Re: 後継者募集
— Youhei SASAKI <uwabami@...>
2011/05/24
MonnWolf 様: 佐々木です.
[#48102] データ整形 — HIDE <u-zero@...>
いつもお世話になっております。臼井@ruby初心者と申します。
13 messages
2011/05/24
[ruby-list:48027] Re: 2つのCSVファイルの結合方法についてご質問
From:
rubikitch@...
Date:
2011-05-01 08:05:44 UTC
List:
ruby-list #48027
From: askar k <tenzancode@gmail.com>
Subject: [ruby-list:48023] 2つのCSVファイルの結合方法についてご質問
Date: Sun, 1 May 2011 15:31:25 +0900
るびきちです。
# なんかめちゃ久しぶりの投稿なのだが…。
> コード:
> require "fileutils"
> FileUtils.cp("file1.csv", "file3.csv") #まずはひつ目のファイルをコピーしました
>
> File.open("file3.csv", "a+") #できた新しいファイルを追加モードに設定
> File.open("file2.csv", "r") do |file| #追加したいファイルをリードモードに設定
> file.each_line do |line|
> puts line #ここではfile3.csvにデータを追加して行きたいのですが、どうしたらよいか分かりません。
> end
> end
まず、根本的なことから。
「#」は全角になっているのでコメントになっていません。
また、#の前にも全角スペースが入っています。
そして本題。惜しい!もう少しでうまくいくところでしたね。
File.open("file3.csv", "a+") do |out|
〜
end
でoutに書き込めば、file3.csvに追記されます。
そして、outに書き込むには out.puts を使います。
元のコードに忠実な形だと、こうですね。
# -*- coding: utf-8 -*-
require "fileutils"
FileUtils.cp("file1.csv", "file3.csv") #まずはひつ目のファイルをコピーしました
File.open("file3.csv", "a+") do |out|
File.open("file2.csv", "r") do |file|
file.each_line do |line|
out.puts line
end
end
end
もっと簡単にやるならば、こうやる。
File.read(ファイル名)でファイルの内容がまるごと文字列で得られるので、
それをout.putsします。
モードがwになっているのは新規作成です。
open("file3.csv", "w") do |out|
out.puts File.read("file1.csv")
out.puts File.read("file2.csv")
end
さらに、out.puts File.readが重複しているので、Array#eachで
「各々のファイルについて」と表現してあげることもできます。
こうすることで、追加するファイルがいくつになっても簡単に対応できるようになります。
open("file3.csv", "w") do |out|
["file1.csv", "file2.csv"].each do |file|
out.puts File.read(file)
end
end
> この問題を解決するにはどの方向で調べて行けばよいか教えて頂ければ幸いです。
> 手物とにある本はたのしいRUBY第3版です。
とりあえず、File、IO、Array、String、Enumerableのメソッドを地道に学んでいきましょう。
これらのクラスは頻出なので、しっかり学んでおく必要があります。
中には難しいメソッドも含まれるので、わからないものは飛ばしてOKです。
英語を学ぶには単語を学ばないといけないように、
Rubyを学ぶには、頻出メソッドを学ばないといけません。
地道な作業になりますが、必ず実を結ぶので、がんばってくださいね。
--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/
Twit: http://twitter.com/rubikitch/
『Emacsテクニックバイブル』 http://d.hatena.ne.jp/rubikitch/20100713/emacsbook
『Ruby逆引きハンドブック』 http://d.hatena.ne.jp/rubikitch/20090525/rubybook