【Python】フォルダ内のファイルをランダムにピックアップして任意のフォルダにコピーするコード

本ブログはアフィリエイト広告を利用しています

WEB / アプリ
WEB / アプリ
この記事は約4分で読めます。

とっちゃん@nyanco! です。

今回は指定フォルダのサブフォルダ(第一階層まで)内にあるファイルをランダムに1つピックアップしてoutputフォルダにコピーするPythonコードを作ったので共有するよというお話です。

肉玉にゃんこ

ニッチなニーズだとは思いますが共有しますにゃ~
筆者は報告書に使用する画像ファイル選定時などで利用してますにゃ~

スポンサーリンク

コードの動作環境

  • OS:Windowsで動作確認 ※macOSでは未確認
  • Pythonバージョン:3.11.2
  • 必要ライブラリ:random、shutil【どちらも標準ライブラリなのでインストール不要】

フォルダ内ファイルランダムピックアップ&コピーpythonコード

早速ですがコードはこちらです。

import os
import random
import shutil

# 画像を探すフォルダのパス
image_folder_path = 'C:/Users/xxxx'

# outputフォルダのパス
output_folder_path = 'C:/Users/xxxx'

# 画像ファイルの拡張子
image_exts = ['.jpg', '.jpeg', '.png', '.gif', '.pdf']

# 画像フォルダ内のフォルダ名を取得
folders = [f for f in os.listdir(image_folder_path) if os.path.isdir(os.path.join(image_folder_path, f))]

# 各フォルダ内の画像からランダムに1つ選択してoutputフォルダにコピー
for folder in folders:
    folder_path = os.path.join(image_folder_path, folder)
    images = [f for f in os.listdir(folder_path) if os.path.splitext(f)[-1].lower() in image_exts]
    if len(images) == 0:
        continue
    image_name = random.choice(images)
    src_path = os.path.join(folder_path, image_name)
    dst_path = os.path.join(output_folder_path, image_name)
    shutil.copy(src_path, dst_path)

※本コードはChatGPTで生成したコードを少しカスタマイズしています。

フォルダパスの設定

上記コードは2箇所がダミーになっているので各々で設定が必要です。

6行目:image_folder_path = 'C:/Users/xxxx'
9行目:output_folder_path = 'C:/Users/xxxx'
  • 6行目にピックアップしたい画像が入っているフォルダが入っているフォルダのパスを指定
  • 9行目にピックアップしてコピーした画像ファイルを格納するフォルダのパスを指定

対象ファイルはカスタマイズ可能

デフォルトではピックアップ対象となるファイルは「jpg」「jpeg」「png」「gif」と画像ファイルになってますが、12行目に拡張子を追加・変更することで種類は自由にカスタマイズ可能です。

肉玉にゃんこ

ピックアップ対象は拡張子で判別してるのでファイルの種類はなんでもOKですにゃ~

コードの挙動内容と使い方

ファイルパスの設定が終われば、あとは.pyファイルをダブルクリックするだけで実行されます。

挙動内容としては以下の通り。

  1. image_folder_pathで指定したフォルダのサブフォルダにある対象ファイルの中からランダムに1つを選択
  2. 1.で選択したファイルをimage_folder_pathで指定したフォルダにコピー
  3. サブフォルダの数だけ繰り返し

ダウンロード

下記より上記コードのpythonファイルをダウンロードできます。

→「gazou-pickup_v1.py」をダウンロードする

肉玉にゃんこ

Zipファイルがダウンロードされるので解凍してお使いくださいにゃ~

おわりに

今まではチクチク手作業でやってた作業が一瞬で終わるようになりました。控え目に言ってPython、ChatGPT最高です!

肉玉にゃんこ

プチ自動化プロジェクト、どんどん進めていきますにゃ~

本記事がどなたかの参考になれば幸いです。

今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧

コメント