پیاده سازی File Organizer

  • مدرس : علی بیگدلی
  • تاریخ انتشار: 1404/05/25
  • تعداد بازدید: 9

پروژه: دسته‌بندی فایل‌ها بر اساس پسوند

اهداف پروژه

  • تمرین استفاده از ماژول‌های pathlib و shutil
  • کار با دایرکتوری‌ها و مسیرها
  • تمرین حلقه‌ها و ساختارهای داده (دیکشنری)
  • مدیریت فایل‌ها و دسته‌بندی آن‌ها بر اساس پسوند
  • ساخت برنامه کاربردی برای سازماندهی فایل‌ها

۱. وارد کردن ماژول‌ها و تعریف متغیرهای سراسری

from pathlib import Path

import shutil




base_dir = Path(r"D:\backup\desktop")

target_dir = base_dir / "sorted"

تعریف مسیر پایه و مسیر هدف برای ذخیره فایل‌های دسته‌بندی شده و وارد کردن کتابخانه‌های مورد نیاز

۲. تعریف دسته‌ها و پسوندهای مرتبط

FILE_CATEGORIES = {

    "images": [".jpg", ".jpeg", ".png", ".gif", ".bmp", ".tiff", ".svg", ".webp"],

    "documents": [".pdf", ".doc", ".docx", ".txt", ".xls", ".xlsx", ".ppt", ".pptx"],

    "videos": [".mp4", ".mkv", ".avi", ".mov", ".wmv"],

    "audio": [".mp3", ".wav", ".aac", ".flac", ".ogg"],

    "archives": [".zip", ".rar", ".tar", ".gz", ".7z"]    

}

ساخت دیکشنری برای نگهداری دسته‌ها و پسوندهای مرتبط با هر دسته

۳. ایجاد دایرکتوری‌ها برای هر دسته

def create_category_directories():

    for category,_ in FILE_CATEGORIES.items():

        (target_dir / category).mkdir(parents=True,exist_ok=True)

تابع برای ایجاد پوشه‌های هر دسته در مسیر هدف، با کنترل اینکه اگر پوشه وجود داشت دوباره ایجاد نشود

۴. جستجو و دسته‌بندی فایل‌ها

def search_and_categorize_files():

    for file in base_dir.rglob("*"):

        for category,extensions in FILE_CATEGORIES.items():

            if file.suffix in extensions:

                try:

                    shutil.copy(file,target_dir / category)

                except shutil.SameFileError:

                    pass

این تابع تمام فایل‌ها را در مسیر پایه جستجو کرده و بر اساس پسوند آن‌ها در پوشه مربوطه کپی می‌کند

۵. اجرای برنامه

create_category_directories()

search_and_categorize_files()

ایجاد پوشه‌ها و سپس دسته‌بندی فایل‌ها با فراخوانی توابع تعریف‌شده

 

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد
0/600

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است. می‌توانید اولین نفر باشید.