ディレクトリ内のファイルから対象の一覧を作成し、仕分ける †機械学習で使うデータを用意するときなどのために書きました。 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() # 処理終了 #
|