FrontPage

ディレクトリ内のファイルから対象の一覧を作成し、仕分ける

機械学習で使うデータを用意するときなどのために書きました。
test、valid、trainに1:1:10の割合でファイルコピーします。

import sys                                                      # システム関連標準モジュール                       #
import os                                                       # OS関連標準モジュール                             #
import glob                                                     # パターン検索用モジュール                         #
import random                                                   # 乱数生成用モジュール                             #
import shutil                                                   # ファイルコピー用                                 #
import errno                                                    # エラー番号関連のため                             #
                                                                #                                                  #
args = sys.argv                                                 # 引数取得                                         #
                                                                #                                                  #
try:                                                            # 例外処理のため                                   #
    os.makedirs( "./test" )                                     # カレントにtestディレクトリを作成                 #
    os.makedirs( "./train" )                                    # カレントにtrainディレクトリを作成                #
    os.makedirs( "./valid" )                                    # カレントにvalidディレクトリを作成                #
except OSError as e:                                            # OSエラーを検知                                   #
    if e.errno != errno.EEXIST:                                 # ディレクトリが既に存在している以外の場合         #
        raise e                                                 # 処理中止                                         #
                                                                #                                                  #
fileList = glob.glob( "./*.mid*" )                              # 対象となるファイルのリストを取得                 #
                                                                #                                                  #
for file in fileList:                                           # ファイルリストの各ファイルについて               #
    randNum = random.randint( 0, 11 )                           # 指定範囲の乱数を生成                             #
    if 0 == randNum:                                            # 一定の確率で                                     #
        shutil.copy( file, "./test" )                           # testディレクトリにファイルコピー                 #
    elif 1 == randNum:                                          # 一定の確率で                                     #
        shutil.copy( file, "./valid" )                          # validディレクトリにファイルコピー                #
    else:                                                       # 一定の確率で                                     #
        shutil.copy( file, "./train" )                          # trainディレクトリにファイルコピー                #
                                                                #                                                  #
sys.exit()                                                      # 処理終了                                         #

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-10-19 (土) 16:14:08 (1652d)