見出し画像

Python、フォルダ内のデータ移動を試してみた。

import os
import shutil
from tkinter import Tk, filedialog
from openpyxl import load_workbook

def move_data():
    # 移動元フォルダを選択する
    root = Tk()
    root.withdraw()  # ルートウィンドウを表示しない
    source_folder = filedialog.askdirectory(title="移動元フォルダを選択してください")
    if not source_folder:
        print("移動元フォルダが選択されていません。")
        return

    # 移動先フォルダを選択する
    destination_folder = filedialog.askdirectory(title="移動先フォルダを選択してください")
    if not destination_folder:
        print("移動先フォルダが選択されていません。")
        return

    # Excelファイルを選択する
    file_path = filedialog.askopenfilename(title="Excelファイルを選択してください", filetypes=[("Excel files", "*.xlsx")])
    if not file_path:
        print("Excelファイルが選択されていません。")
        return

    # Excelファイルを読み込む
    workbook = load_workbook(file_path)
    sheet = workbook.active

    # A列のA2より下のセルにデータが含まれる行を特定する
    rows_to_move = []
    for row in sheet.iter_rows(min_row=2, min_col=1, max_col=1, values_only=True):
        if any(row):
            rows_to_move.append(row)

    # 移動する
    for row in rows_to_move:
        # 移動元フォルダ内のファイルを取得
        files = os.listdir(source_folder)
        # ファイル名の部分一致を検証して移動
        for file_name in files:
            if str(row[0]) in file_name:
                file_path = os.path.join(source_folder, file_name)
                destination_path = os.path.join(destination_folder, file_name)
                shutil.move(file_path, destination_path)  # ファイルを移動

    
    print("移動が完了しました。")

move_data()


この記事が気に入ったらサポートをしてみませんか?