2025年1月10日金曜日

Python:画像ファイルをcsvファイルの情報に基づいて、現在のディレクトリのフォルダに移動させるプログラム

 import os

import shutil

import csv


def move_images_to_folders(csv_file):

    """

    画像ファイルを、CSVファイルの情報に基づいて現在のディレクトリのフォルダに移動する関数


    Args:

        csv_file (str): CSVファイルのパス

    """


    # CSVファイルを読み込む

    with open(csv_file, 'r') as f:

        reader = csv.reader(f)

        file_info = {row[0]: row[1] for row in reader}


    # 画像ファイルを移動 (最大100回試行)

    max_retry = 100

    for i in range(0001, 2001):

        for _ in range(max_retry):

            filename = f"{i:04d}b.jpeg"

            filepath = filename

            if os.path.exists(filepath):

                dest_folder = file_info[filename]

                os.makedirs(dest_folder, exist_ok=True)

                shutil.move(filepath, dest_folder)

                print(f"Moved {filename} to {dest_folder}")

                break

            else:

                i += 1  # ファイルが見つからない場合、次の番号に

                print(f"File {filename} not found. Trying next.")


# CSVファイルのパスを指定

csv_file = "test.csv"


move_images_to_folders(csv_file)


以下、説明

・shutil: pythonのモジュール。shell utilitiesの略。ファイルの操作などをすることができる。

・csvファイルの分類に従って、ファイルをフォルダに移動させるプログラム。ファイル名が抜けていると、そこでプログラムが止まってしまうので、100回ループさせて、それでもファイルがなければ、次の番号のファイルに移るようにプログラムを改良した。

0 件のコメント:

コメントを投稿