2013年1月26日土曜日

[Perl]csvファイルの行列を入れ替え

# -*- coding: utf-8 -*-
use strict;
use utf8;

# csv ファイルの行列を入れ替える
my $inputFileName = 'input.csv';
my $outputFileName = 'output.csv';

open(IN, $inputFileName);
open(OUT, '> ' . $outputFileName);

my %b;
my $i = 0;
while () {
    chomp;
    my @r = split(/,/, $_);
    $i = 0;
    foreach $a (@r) {
        $b{$i} .= ($a . ",");
        $i++;
    }
}
for (my $j = 0; $j < $i; $j++) {
    # 末尾の , は削除する
    $b{$j} = substr($b{$j}, 0, -1);
    print(OUT $b{$j} . "\n");
}
close(IN);
close(OUT);
input.csv
2013-1-1,6.5
2013-1-2,10.0
2013-1-3,5.6
2013-1-4,3.2
2012-1-5,2.8
実行結果
output.csv
2013-1-1,2013-1-2,2013-1-3,2013-1-4,2012-1-5
6.5,10.0,5.6,3.2,2.8

0 件のコメント:

コメントを投稿