Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

【Ruby】タブ区切りテキストファイル(tsv)をcsvに変換する

More than 1 year has passed since last update.

概要

アウトプット用に、学習した内容を紹介していきます。
本日の内容はRubyでtsvをcsvに変換するお話です。

環境

Mac OS Mojave 10.14.6
Ruby 2.5.3
エディタ VSCode

tsvをcsvに変換

以下のタブ区切りテキストをcsvに変換します。

meibo.txt
john    m   18
paul    m   20
alice   f   15
dabid   m   17
jasmin  f   17

こちらは以下のコードでcsvファイルへの変換が出来ます。

tsvtocsv.rb
require 'csv'

File.open( 'meibo.txt', 'r:UTF-8' ) do |file|
  CSV.open( 'meibo.csv', 'w', force_quotes: true ) do |csv|
    #一行ずつCSVファイルへ書き込み
    file.each_line do |line|
      csv << line.chomp.split( "\t" )
    end
  end
end

File.openでtsvファイルを読み込みます。
次の行、CSV.openで書き込み用ファイルを用意します。

その下のループ文では、tsvファイルに対し一行ずつcsvファイルへ書き込んでいきます。
chompで改行文字削除、split( "\t" )でタブごとに区切っています。

toshi_btr
駆け出しエンジニアです
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away