#author("2019-10-19T16:14:08+09:00","default:Authors","Authors")
''[[FrontPage]]''
* ディレクトリ内のファイルから対象の一覧を作成し、仕分ける [#n161e909]
機械学習で使うデータを用意するときなどのために書きました。~
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