| کانال توسعه‌دهندگان پایتون |
7.59K subscribers
67 photos
3 videos
4 files
63 links
⭕️ کانال توسعه‌دهندگان پایتون دولوپیکس

💠 دولوپیکس | جامعه توسعه‌دهندگان ایرانی

💎 @Developix
🚀 Developix.ir

📌 پشتیبانی و تبلیغات:
@DevelopixSupport
Download Telegram
خیلی وقت‌ها پوشه Downloads شبیه یک انباری شلوغ می‌شود؛ pdf، عکس، zip، هر چیزی قاطی هم 😅
امروز یک اسکریپت واقعی و ساده با Python می‌سازیم که فایل‌ها را بر اساس نوع، به پوشه‌های جدا منتقل کند.

ایده از این آموزش الهام گرفته شده:
Real Python - Working With Files in Python

🧠 ایده کلی

Python برای کار با فایل‌ها و مسیرها کتابخانه‌های خیلی خوبی دارد، مخصوصاً pathlib و shutil.
کاری که می‌کنیم:

- پوشه Downloads را مانیتور نمی‌کنیم، فقط هر بار اسکریپت را اجرا کنیم
- بر اساس پسوند فایل (مثلاً .pdf یا .jpg) تصمیم می‌گیریم کجا برود
- اگر پوشه مقصد وجود نداشت، خودمان می‌سازیم

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

🛠 کتابخانه‌های مورد نیاز

همه چیز با کتابخانه‌های استاندارد Python انجام می‌شود:

- pathlib برای کار راحت‌تر با مسیرها
- shutil برای جابجا کردن فایل‌ها
- os اگر خواستیم تنظیمات خاص‌تری انجام بدهیم (اینجا خیلی کم استفاده می‌شود)

📦 کد نمونه: مرتب‌سازی فایل‌ها بر اساس پسوند

این یک مثال ساده و عملی است. مسیر DOWNLOADS_PATH را با مسیر سیستم خودتان عوض کنید 👇

from pathlib import Path
import shutil

# مسیر پوشه Downloads را مطابق سیستم خود تنظیم کنید
DOWNLOADS_PATH = Path.home() / "Downloads"

# مپ کردن پسوندها به پوشه‌های هدف
EXTENSION_MAP = {
".pdf": "PDFs",
".jpg": "Images",
".jpeg": "Images",
".png": "Images",
".zip": "Archives",
".rar": "Archives",
".mp4": "Videos",
".mp3": "Music",
}

for item in DOWNLOADS_PATH.iterdir():
if item.is_file():
ext = item.suffix.lower()
if ext in EXTENSION_MAP:
target_dir = DOWNLOADS_PATH / EXTENSION_MAP[ext]
target_dir.mkdir(exist_ok=True)

target_path = target_dir / item.name
# اگر فایلی با همین نام هست، نام را کمی عوض می‌کنیم
if target_path.exists():
target_path = target_dir / f"{item.stem}_copy{ext}"

shutil.move(str(item), str(target_path))


نکات کوچک اما مهم

- قبل از اجرا، یک‌بار روی یک پوشه تستی امتحان شود تا مطمئن شوید مپ پسوندها را درست تعریف کرده‌اید.
- می‌توانید EXTENSION_MAP را مطابق نیاز خود بزرگ‌تر کنید (مثلاً برای فایل‌های .pptx، .csv و غیره).
- اگر با Windows کار می‌کنید و مسیر Downloads فرق دارد، از print(Path.home()) استفاده کنید تا مسیر خانه کاربر را ببینید.

چطور حرفه‌ای‌ترش کنیم؟

- اضافه کردن logging برای لاگ کردن کارهایی که روی فایل‌ها انجام می‌شود.
- ساختن یک CLI ساده با کتابخانه argparse تا بشود مسیر را از طریق command line داد.
- زمان‌بندی اجرای اسکریپت (مثلاً با Task Scheduler روی Windows یا cron روی Linux).

اگر پوشه Downloads شما همیشه شلوغ است، این اسکریپت یک نجات‌دهنده کوچک است 😄
امتحانش کنید و اگر دوست داشتید، با بقیه توسعه‌دهندگان پایتون هم به اشتراک بگذارید.

🔖 #Python #پایتون #Python #Automation #Files #pathlib #shutil #Scripting

👤 Developix

💎 Channel: @DevelopixPython
👍54