Pythonで任意のディレクトリの画像をシャッフルして別のフォルダーに連番で保存する。
Jupyter-notebookでディレクトリの画像をシャッフル。
shuffleimage.ipynb
# フォルダ内の画像をシャッフルして保存するコード
import os
from random import shuffle
from glob import glob
from shutil import copy
data_dir_path = "ここに画像が入っているディレクトリの絶対パスをペースト" #シャッフルしたい画像を内包しているフォルダーパス
base_path = os.path.join(data_dir_path ,"*.png")
# シャッフルした画像の保存先ディレクトリの作成
make_dir_path = data_dir_path +"_shuffle" #保存先ディレクトリのパス
os.makedirs(make_dir_path, exist_ok=True)
# フォルダー内の画像をシャッフルして保存先ディレクトリに保存
files = sorted(glob(base_path))
shuffle(files)
n = 1 #ファイル名開始番号
# 連番で画像を作成したディレクトリに保存
for file in files:
copy(file,'{}/{}.jpg'.format(make_dir_path,str(n).zfill(5)))
n += 1
print("保存先ディレクトリ %r を作成"%os.path.basename(make_dir_path))
print("シャッフルした画像数 : %d 保存完了\n"%(int(len(files))+1))
引用
Pythonでパス文字列からファイル名・フォルダ名・拡張子を取得、結合 | note.nkmk.me
python 相対パス 親ディレクトリの場所を取得する方法 - 初心者入門サンプル
[Python] フォルダやファイルのコピー、移動、削除(shutilモジュール) | Hibiki Programming Notes
【Python】カレントディレクトリのファイル数をカウントする Python
初投稿なので書き直す予定です^^