もくじ
やりたいこと
需要があるか不明ですが、今回やりたいことは大量にフォルダを作成しつつ、そのフォルダにランダムな名前をつけるようにプログラムします。
さらに、新しく作ったフォルダに事前に用意したファイルを複数個コピーして格納し、それもファイル名をランダムに設定します。
サンプルで仮データを作りたいときなどに活用してもらえたら。
ディレクトリ構成
$ tree . ├── image │ └── IMG_0001.png └── test.py
完成形
import os import random, string import shutil for i in range(5):# フォルダ数 n = 20 # ランダム文字数 folder_name = ''.join(random.choices(string.ascii_letters + string.digits, k=n)) folder_name = "DIR-%s" % (folder_name.upper()) path = "./%s" % (folder_name) os.mkdir(path) file_list = [] for j in range(3):# ファイル数 file_name = ''.join(random.choices(string.ascii_letters + string.digits, k=n)) file_name = "IMG-%s" % (file_name.upper()) file_list.append(file_name) file_path = './%s/%s.png' % (folder_name, file_list[j]) shutil.copy('./image/IMG_0001.png', file_path)
コメントアウトしている「フォルダ数」「ランダム文字数」「ファイル数」の数字部分を任意の数字に変えるだけで好きな量を作成できます。
実行
python3 test.py
$ tree . ├── DIR-0MTIUVSCCDOR5SJDSWOK │ ├── IMG-GQE2KCJJTMC4GVFC48KR.png │ ├── IMG-VQI6MRSOZANKZO4ZVKY4.png │ └── IMG-YL3ZRLMBPEI0JHMDENQR.png ├── DIR-3EXR8AQVKVFIJUQ1PURH │ ├── IMG-AM8T3GTAVVMMGTKFXE0I.png │ ├── IMG-DGA6PZGL8WUFRHWOIO7U.png │ └── IMG-RWBXPCPX94AFMDHZDNOM.png ├── DIR-A7XMBNLW5HU00VVWWNLU │ ├── IMG-J96J4OZSVHOHIOHZIWQZ.png │ ├── IMG-JOE7V0CIUCIGBGTUYBQA.png │ └── IMG-XIQ9BTBLTXIT0XOSW7N7.png ├── DIR-LESRDJESGH3JBF27T39T │ ├── IMG-GVWKQ3BYV4XZUNCO2Z2H.png │ ├── IMG-TVJDDPLRWIKOAJHOFYKO.png │ └── IMG-ZRXQVG8GV7OTT1PWDUWV.png ├── DIR-VCVGGSTY9FU7YAXDLSWG │ ├── IMG-7JPCSJNRZGTANFSWGUDG.png │ ├── IMG-BHDCXLNTWOY5XDJSYYFY.png │ └── IMG-DWIIRUUZHZQ2CGOZ8THH.png ├── image │ └── IMG_0001.png └── test.py
DIR-xxxx
のフォルダに格納されているIMG-xxxx
はすべてimage/IMG_0001.png
をコピーしただけの同じ画像で、upper()
をはずせば大文字小文字混在の文字列で生成できます。
$ tree . ├── DIR-5aiIyLCgcUJ8nAJlbLFY │ ├── IMG-KlHz3FyxreBLZgMMQjaT.png │ ├── IMG-jpMDSriyUZjVOJovKoo1.png │ └── IMG-xBHDndK0lg0doIex4GO6.png ├── DIR-EKiyFoeHeK2wXv9PaNhB │ ├── IMG-73QNEbAQXNr4yjHD104X.png │ ├── IMG-FFaPoDX35KqHRb8cilwB.png │ └── IMG-J8DxhjijsVdeysb9rhqs.png ├── DIR-RbajTyQwx1nrLGTwEa4U │ ├── IMG-e8fEnAcwte943R6YQtwr.png │ ├── IMG-fhNOed2B6XlsVQa2es7E.png │ └── IMG-vyGQukB2UVsEQ7wtRj7f.png ├── DIR-TuQZUyolKsb7iuhFv5NF │ ├── IMG-idDweVb4FZ11PtrIM4iG.png │ ├── IMG-lRFEiajKUQlIWRLJrHHh.png │ └── IMG-xWWcDe8wvEUPRu73GQp3.png ├── DIR-ht9lu93BXpIeOkwN4sM4 │ ├── IMG-AQZRSoPDMtjWfX6wRmoF.png │ ├── IMG-DZyDJIW0onAYGVUtdXV5.png │ └── IMG-kCMLNuGYRcshzhKzBibU.png ├── image │ └── IMG_0001.png └── test.py