フォルダ内のファイルを特定の割合に分ける[Python]

7月 27, 2020

なんでこんなことするの?

CNNで学習するために、画像ファイルをTrainingとValidationに分けたかったから。

画像ファイルを7:3に分けるスクリプト
from glob import glob
from os.path import join
import random
img_src = "/home/img/"
# 指定パスのPNG画像ファイルのリストを取得
files = glob(join(img_src, "*.png"))
# ファイルの総数を取得
num_files = len(files)
# ファイルのリストを7:3に分ける
files30 = random.sample(files, int(num_files*0.3))
files70 = random.sample(files, num_files - int(num_files*0.3))
ポイント
  • random.sample(リストからランダムでn個の要素を取り出す関数)を使ったこと。
  • ファイルの抜けが無いように、(num_file*n) : (1 – numfile*n) の割合で分けたこと。

Python

Posted by vastee