MATHGRAM

主に数学とプログラミング、時々趣味について。

python:データ処理tips その2 数字で整理されたファイルを順番に読み込む。(02,03などの桁数縛り)

今回は、前回とは違った形でファイル名が整理されている時です。
具体的にはこんな感じ。

result1_01.tsv    result5_01.tsv
result1_02.tsv    result5_02.tsv
result1_03.tsv    result5_03.tsv

つまりは、01や03などのように桁数が2桁で固定されているような時ですね。
この場合は単にfor文を回すだけでは表現できないので少し工夫が必要です。

#-*- coding:utf-8 -*-

import numpy as np

#余談ですがタプルを使うとメモリを節約できます。
iTuple = (1,5,10)
#01を表現するために小数点の数列を作成
jTuple = np.arange(0.1,0.6,0.1)
for i in iTuple:
    for j in jTuple:
        #roundとsplitとjoinを使う
        #round:冗長な桁を削除する
        #split:小数点でぶった切った数字をそれぞれ保持する。strで文字に変換。
        #join:リストに入った文字列を区切りなしで一つに結合
        print("result{}_{}.tsv".format(i, ''.join(str(round(j,1)).split('.'))))

出力結果はこんな感じ。

result1_01.tsv
result1_02.tsv
result1_03.tsv
result1_04.tsv
result1_05.tsv
result5_01.tsv
result5_02.tsv
result5_03.tsv
result5_04.tsv
result5_05.tsv
result10_01.tsv
result10_02.tsv
result10_03.tsv
result10_04.tsv
result10_05.tsv

以上です。tips1かtips2を使えば、大体のファイルに対応できると思います。

他にも画像処理tipsで紹介した、拡張子で見分ける方法などがありますね。
csvやtsv、txtが混在している時は拡張子で見分けるのが最適です。

全然関係ないんだけど、ブログ始めてから大した記事書けてないです笑
2月はなんか大きめのことやりたいです。

p.s. DeepLearning系の学習で二番煎じにならんことなんかねぇのか・・・