PythonでTSVファイルを読み書きする方法
スポンサーリンク
このドキュメントの内容は、以下の通りです。
- はじめに
- TSVファイルとは
- TSVファイルの拡張子
- csv モジュール
- csvとtsvを扱うときの違い
- サンプルのTSVファイル
- TSVを読み込むサンプルプログラム
- TSVを書き込むサンプルプログラム
- まとめ
はじめに
TSVとは、Tab Separated Values の略です。タブを区切り文字として使ったフォーマットの形式のファイルのことをいいます。TSV とは CSV (Comma Separated Values) の親戚です。CSV や TSV ファイルは、マイクロソフトのエクセル(Excel)などで作成できます。もちろん、エディタなどでも簡単に作成できます。CSV/TSV は、いろいろなところで使われるファイルです。今日もおびただしい数のCSV/TSVのファイルたちが世界中で作成されているに違いありません。
ここでは、pythonを用いて、TSVファイルを読み書きする方法について紹介いたします。
TSVファイルとは
TSVファイルは、タブを区切り文字として使ったフォーマットのファイルです。1つ1つのデータがタブで区切られて、ファイルに格納されています。CSVファイルの親戚です。CSVファイルは、カンマ区切りでデータが保存されています。
たとえば、CSVでは、このようなデータです。
1,foo 2,bar
TSVだと、以下のようなデータです。以下の例では、\t はタブを意味します。
1\tfoo 2\tbar
TSVファイルの拡張子
TSVファイルの拡張子は、 .tsvです。そのままですね。 なお、CSVファイルの拡張子は .csv です。csv モジュール
TSV ファイルを読むには、 csv モジュールを使用します。csvとtsvを扱うときの違い
CSVファイルとTSVファイルを扱うときに、違うのはなんでしょうか?違いは、区切り文字が、カンマかタブかの違いだけです。
そのため、プログラミングをするときの違いは、デミリタと呼ばれる区切り文字の指定が、カンマか、タブかの違いしかありません。
そのため、CSVのプログラムをほぼそのまま使いまわすことができます。
サンプルのTSVファイル
以下の内容の data.tsv というファイルがあったとします。
foo bar 123 hoge meta 567
TSVを読み込むサンプルプログラム
TSV を読み込むプログラムは、基本的には、ほぼ CSV を読み込むプログラムと一緒です。唯一違うとすれば、 csv.reader 関数に渡す、デリミタのパラメータを付けるか付けないか、です。もちろん、CSV の時にデミリタを指定してもよいですが、デフォルトのデミリタが使われるので、通常は必要ありません。
TSVファイルを読み込む、サンプルのソースコードは以下の通りです。
#! /usr/bin/env python import csv f = open("data.tsv", 'r') tsv = csv.reader(f, delimiter = '\t') for row in tsv: print(row) f.close()
配列になっているので
print(row[0]) print(row[1]) print(row[2])
とすると、それぞれの値を表示することができます。
TSVを書き込むサンプルプログラム
TSVファイルを作成する場合には、ファイルを書き込み用でオープンします。 csv.writer で writer を作成して、 writerows でデータをファイルに書き込みます。
#! /usr/bin/env python # -*- coding: utf-8 -*- import csv data = [[1, 'foo'], [2, 'bar'], [3, 'hoge']] f = open('write1.tsv', 'w') writer = csv.writer(f, delimiter='\t') writer.writerows(data) f.close()
ダブルクォートで値を囲む場合には、 quoting を指定します。以下の例の csv.QUOTE_NONNUMERIC では、数値以外の値をクォートします。
#! /usr/bin/env python # -*- coding: utf-8 -*- import csv data = [[1, 'a,b,c'], [2, 'd,e,f'], [3, 'x y z']] f = open('write2.tsv', 'w') writer = csv.writer(f, delimiter='\t', quoting=csv.QUOTE_NONNUMERIC) writer.writerows(data) f.close()
write2.tsv の内容は以下の通りです。
1 "a,b,c" 2 "d,e,f" 3 "x y z"
まとめ
- TSVを扱い場合は、csvモジュールを利用すると簡単に扱える
- CSVとTSVの違いは、区切り文字のみ。
スポンサーリンク
スポンサーリンク
いつもシェア、ありがとうございます!
もっと情報を探しませんか?
関連記事
最近の記事
- パナソニック ジェットウォッシャードルツ EW-DJ61-Wのホースの修理
- LinuxセキュリティモジュールIntegrity Policy Enforcement
- アマゾンのEcho Show 5を買ったのでレビューします
- アマゾンのサイバーマンデーはAlexa Echo Show 5が安い
- Android スマートフォン OnePlus 7T と OnePlus 7の違い
- Android スマートフォン OnePlus 7 をAndroid10にアップデートしてみた
- クレジットカードのバーチャルカードの比較のまとめ
- 活動量計 Xiaomi Mi Band 4を買ってみたのでレビュー
- Android スマートフォン OnePlus 7 のレビュー
- AliExpressでスマートフォンを買い物してみた
- パソコンのホコリ対策 レンジフードフィルターと養生テープ
- 80PLUS GOLDのPC電源ユニットAntec NeoEco 750 Goldのレビュー
- イギリスの付加価値税 VAT は払い戻しを受けられる
- イギリスのロンドンでスーツケースなど荷物を預けられる場所は
- イギリスのロンドンで地下鉄やバスに乗るならオイスターカードを使おう
- イギリスのヒースロー空港からロンドン市内への行き方
- 航空便でほかの航空会社に乗り継ぎがある場合のオンラインチェックイン
- SFC会員がANA便ではなくベトナム航空のコードシェアを試して解ったこと
- ベトナムの入国審査でeチケットの掲示が必要だった話
- シアトルの交通ICカードはオルカカード(Orca)です
人気のページ
- Windows7 IME 辞書ツールで単語の登録に失敗しました
- C言語 popen()でコマンドを実行して出力を読み込む
- Windows7で休止状態にする方法
- CentOS MySQLの起動、停止、再起動
- loggerコマンドでsyslogにエラーを出力する方法
- パソコンパーツの買取をしてくれる店のまとめ
- Java Mapの使い方 get(),put(),remove(),size(),clear()
- 楽天のRポイントカードを作ってみた
- iPhone 5 から iPhone 6 に乗り換えたのでレビュー
- netstatコマンドのステータスの意味
スポンサーリンク
過去ログ
2020 : 01 02 03 04 05 06 07 08 09 10 11 122019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12