CV・NLPハマりどころメモ

画像認識と自然言語処理を研究する中でうまくいかなかったことと、その対策をまとめる自分用メモが中心。

別々のフォルダに散らばって保存されたファイルを1つにまとめる[Python]

└─data
    ├─test
    │  ├─0
    │  │      train_0000010.tif
    │  │      train_0000011.tif
    │  │      train_0000012.tif
    │  │      train_0000013.tif
    │  │      train_0000014.tif
    │  │
    │  └─1
    │          train_0000015.tif
    │          train_0000016.tif
    │          train_0000017.tif
    │          train_0000018.tif
    │          train_0000019.tif
    │
    └─train
        ├─0
        │      train_0000005.tif
        │      train_0000006.tif
        │      train_0000007.tif
        │      train_0000008.tif
        │      train_0000009.tif
        │
        └─1
                train_0000000.tif
                train_0000001.tif
                train_0000002.tif
                train_0000003.tif
                train_0000004.tif

こういった様々なフォルダに散らばって保管されたファイルたちを一つのフォルダにまとめるスクリプトを紹介.

import os
import shutil
from glob import glob

files = "data/*/*/*.tif"
dst = "path/to/dst"

for file in glob(files):
    dst_file_path = os.path.join(dst, os.path.basename(file))
    shutil.copy(file, dst)

globを使って2階層以上のファイルをリスト化したことが工夫点

もし良かったら使ってください.