Pythonでタブ区切りデータを出力する方法
毎回実装するのがさほど苦にならないので、ついつい毎回実装してしまったりするタブ区切りデータの出力ですが、やっぱりたまに改行をつけ忘れたりstrで文字列にするのを忘れたりすることがあるので、まとめてみることにしました。
class TSVFile(file): def write(self, v): file.write(self, "\t".join(map(str, v)) + "\n")
これは普通のfileを継承して、writeだけ独自のものに差し替えたクラスです。こうすると、以下のように普通のファイルを扱っている気分で、タブ区切りでの出力が出来ます。
fo = TSVFile("c:\\test.txt", "w")
fo.write((1,2,3))
fo.write((4,5,6))
fo.close()
ただし、タブ区切りじゃなくてカンマ区切りでもよくて、数字やアルファベットしか使わないというケースなら20 csv -- CSV ファイルの読み書きライブラリの利用も検討してみた方がいいでしょう。
__ 追記:writeを上書きしてしまわないで、writeListなどといった名前のメソッドを作るのがいいかもしれませんね。