2011年01月06日

csv tsvファイルのフォーマットを変換する(Ruby)

Rubyの練習にcsv tsvのファイルフォーマット変換器を作ってみました。
csvのデータの中にコンマが入っている場合は対応していません。
列の入れ替えや、列の挿入、列の削除などの作業が簡単にできます。
こういう簡単な作業にいちいちエクセルを開くと非効率ですしね。
例では九九表を作りそれをいろいろいじっています。



# encoding:utf-8

def edit_csv(namer,namew,spr="\t",spw="\t")
#読み込みファイル名 書き込みファイル名 読み込み用区切り文字 書き込み用区切り文字
fh = open(namer,"r")
fw= open(namew,"w")
while !fh.eof
txt = fh.gets.chomp! #一行読む 改行記号を削る。
txtAryr = txt.split(spw) #読み込み用区切り文字
txtAryw = txt.split(spw) #書き込み用に同じものを作っておく

#ここにやりたい処理を書く 以下は例#############
txtAryw[4],txtAryw[3]=txtAryr[3],txtAryr[4]#順番交代
txtAryw[2,1]=[]#削除
txtAryw[4,2]=["A","B"]#挿入
###############################################


txtAryw.each do |word|
fw.print word
fw.print spr #書き込み用区切り文字
end

fw.print "\n"

end
fh.close
end

def make99(n=9,filename="99.tsv") #九九のファイルを作る。
foo = File.open(filename,'w')

for i in 1..n
for j in 1..9
foo.print i*j
foo.print "\t"
end
foo.puts "\n"
end

foo.close
end


make99()
edit_csv("99.tsv","99_mod.tsv")


posted by hougi at 12:11| Comment(20) | 日記 | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。