1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ダウンロードフォルダの中身をきれいに分別したくなった時に作ったスクリプト

Last updated at Posted at 2024-02-05

ダウンロードフォルダは、時間が経つと様々なファイルで溢れかえりがちです。このスクリプトは、ファイルを拡張子に基づいて適切なフォルダに自動的に分類し、ダウンロードフォルダを整理するのに役立ちます。

script.py
import os
import shutil
from pathlib import Path

def organize_folder(target_folder, exclude_files):
    # ファイルタイプに応じたフォルダ名
    folders = {
        "Images": [".jpg", ".jpeg", ".png", ".gif", ".bmp", ".tiff", ".ico"],
        "Audio": [".mp3", ".wav", ".flac", ".aac", ".ogg", ".wma"],
        "Video": [".mp4", ".mkv", ".flv", ".avi", ".mov", ".wmv"],
        "Documents": [".pdf", ".docx", ".doc", ".xlsx", ".xls", ".ppt", ".pptx", ".txt", ".md", ".csv"],
        "Archives": [".zip", ".rar", ".7z", ".tar", ".gz", ".bz2"],
        "Executables": [".exe", ".msi", ".jar", ".bat", ".sh"],
        "Code": [".py", ".js", ".html", ".css", ".c", ".cpp", ".java", ".go", ".rb", ".php"],
        "Others": []
    }

    for filename in os.listdir(target_folder):
        if filename in exclude_files:
            continue
        file_path = target_folder / filename
        if file_path.is_file():
            ext = file_path.suffix
            moved = False
            for folder, extensions in folders.items():
                if ext in extensions:
                    dest_folder = target_folder / folder
                    dest_folder.mkdir(exist_ok=True)
                    shutil.move(str(file_path), str(dest_folder / filename))
                    print(f"Moved {filename} to {folder}")
                    moved = True
                    break
            if not moved:
                dest_folder = target_folder / "Others"
                dest_folder.mkdir(exist_ok=True)
                shutil.move(str(file_path), str(dest_folder / filename))
                print(f"Moved {filename} to Others")

if __name__ == "__main__":
    try:
        # スクリプトがある場所を取得
        script_location = Path(os.path.abspath(__file__)).parent
        script_name = os.path.basename(__file__)
        organize_folder(script_location, exclude_files=[script_name])
    except Exception as e:
        print(f"An error occurred: {e}")

スクリプトの概要

このスクリプトは、指定したフォルダ内のファイルを拡張子に応じて分類し、関連するサブフォルダに移動します。例えば、画像ファイルは「Images」フォルダに、音楽ファイルは「Audio」フォルダに、文書ファイルは「Documents」フォルダに、という具合です。

スクリプトの主な機能

  • 拡張子に基づく分類: ファイルは、事前に定義された拡張子リストに基づいて分類されます。
  • 自動フォルダ作成: 対象となるファイルタイプのフォルダが存在しない場合、自動的に作成されます。
  • 除外リスト: 特定のファイルを整理対象から除外する機能を提供します。これにより、スクリプト自体やその他の重要なファイルが移動されることを防ぎます。

スクリプトの使い方

  1. ターゲットフォルダの指定: スクリプトを実行するフォルダをtarget_folderに設定します
  2. 除外ファイルの設定: exclude_filesリストに、移動させたくないファイルの名前を追加します
  3. スクリプトの実行: スクリプトを実行すると、指定されたフォルダ内のファイルが適切なサブフォルダに移動されます

スクリプトのカスタマイズ

フォルダ名や対応するファイルタイプは、folders辞書を編集することで簡単にカスタマイズできます。新しいファイルタイプを追加したい場合や、フォルダの構成を変更したい場合に便利です。

まとめ

このスクリプトは、ダウンロードフォルダを簡単かつ効率的に整理するための強力なツールです。カスタマイズが容易であるため、個々のニーズに合わせて調整してきれいに分別してみてください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?