[#48023] 2つのCSVファイルの結合方法についてご質問 — askar k <tenzancode@...>
お世話になります。
[#48029] CSVファイルのデータをソートしたい — askar <tenzancode@...>
44GK5LiW6Kmx44Gr44Gq44Gj44Gm44GE44G+44GZ44CCDQoNCkNTVuODleOCoeOCpOODq+OBruOD
[#48044] Re: ruby 1.9.2とRails3 へのアップグレード — "Endo Akira" <endo4917@...>
アスカルさん
GyRCJSIlOSUrJWskNSRzGyhCCgobJEI/LjIsJEckOSEjGyhCCgo+IBskQjFzRiMkRyQ5ISMbKEIK
GyRCPy4yLCQ1JHMbKEIKGyRCMXNGIyQ1JHMbKEIKChskQkpWO3YkciQiJGokLCRIJCYkNCQ2JCQk
GyRCJEEkZyRDJEhKczlwJCxBYSQ5JC4kPyRIO1ckJCReJDkhIxsoQgpydWJ5GyRCJE4lUCE8JTgl
GyRCRVkhOSEiJDkkXyReJDskcyEjGyhCCgobJEIkSiQ8JCsbKEJydm0bJEIkLCRKJC8kSiRDJD8k
[#48062] 小数点つき時刻情報とTime#parse — Mitsuo KASAHARA <m.kasahara13@...>
笠原ともうします。
2011年5月9日10:29 Mitsuo KASAHARA <m.kasahara13@gmail.com>:
えぐち@エスアンドイーです
2011年5月9日13:43 EGUCHI Osamu <eguchi@sandeinc.com>:
えぐち@エスアンドイーです
2011年5月9日15:01 EGUCHI Osamu <eguchi@sandeinc.com>:
2011年5月9日20:07 Tanaka Akira <akr@fsij.org>:
2011年5月9日20:44 EGUCHI Osamu <eguchi@sandeinc.com>:
2011年5月9日21:09 Tanaka Akira <akr@fsij.org>:
2011年5月10日7:59 EGUCHI Osamu <eguchi@sandeinc.com>:
[#48092] 後継者募集 — MoonWolf <moonwolf@...>
MoonWolfです。
MoonWolf 様: 佐々木と申します.
MoonWolfです。
MonnWolf 様: 佐々木です.
[#48102] データ整形 — HIDE <u-zero@...>
いつもお世話になっております。臼井@ruby初心者と申します。
[ruby-list:48028] Re: 2つのCSVファイルの結合方法についてご質問
るびきち様
ありがとうございます。
詳細な解説でした。
注意事項も気をつけます。
ますます面白くなって来ています。
頑張ります。
今後も宜しくお願いします、
アスカル
2011/5/1 <rubikitch@ruby-lang.org>:
> 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
>
>