| کانال توسعه‌دهندگان پایتون |
6.47K subscribers
41 photos
2 videos
4 files
46 links
⭕️ کانال توسعه‌دهندگان پایتون دولوپیکس

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

💎 @Developix
🚀 Developix.ir

📌 پشتیبانی و تبلیغات:
@DevelopixSupport
Download Telegram
📌 امروز یک اسکریپت کاملاً کاربردی می‌سازیم: اسکن یک پوشه، پیدا کردن فایل‌ها، و خروجی گرفتن یک گزارش CSV با Python.

سناریو واقعی 👇
فرض کن روی سرور یا سیستم خودت هزاران فایل داری و می‌خواهی:
- اسم همه‌ی فایل‌ها
- سایز هر فایل
- تاریخ آخرین تغییر
رو به‌صورت یک گزارش تمیز در یک فایل CSV داشته باشی تا بعداً با Excel یا pandas تحلیلش کنی.

این کار را با ماژول‌های استاندارد os و pathlib و csv انجام می‌دهیم، کاملاً بدون وابستگی خارجی. برای جزئیات بیشتر هم می‌شود به مستندات رسمی Python سر زد:
os
pathlib
csv

💡 ایده کلی
یک مسیر ورودی می‌گیریم (مثلاً یک پوشه پروژه، یا فولدر logs سرور)، روی کل زیرپوشه‌ها loop می‌زنیم، اطلاعات هر فایل را می‌خوانیم و در یک فایل report.csv ذخیره می‌کنیم.

نمونه کد کامل:
import os
from pathlib import Path
import csv
from datetime import datetime


def scan_directory(root_dir: str, output_csv: str = "report.csv") -> None:
root_path = Path(root_dir).expanduser().resolve()

if not root_path.exists() or not root_path.is_dir():
raise ValueError(f"مسیر نامعتبر است: {root_path}")

rows = []
for dirpath, dirnames, filenames in os.walk(root_path):
for name in filenames:
file_path = Path(dirpath) / name
stat = file_path.stat()
size_bytes = stat.st_size
mtime = datetime.fromtimestamp(stat.st_mtime)

rows.append({
"path": str(file_path),
"size_bytes": size_bytes,
"modified_at": mtime.isoformat(timespec="seconds"),
})

with open(output_csv, "w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=["path", "size_bytes", "modified_at"])
writer.writeheader()
writer.writerows(rows)

print(f"گزارش ساخته شد: {output_csv} ({len(rows)} فایل)")


if __name__ == "__main__":
# مثال: اسکن پوشه جاری
scan_directory(".")


نکته‌ها و کاربردهای واقعی 🔍
- این اسکریپت روی هر سیستم دارای Python 3 اجرا می‌شود، بدون نصب پکیج اضافه.
- خروجی report.csv را می‌توانی مستقیم با pandas بخوانی و روی آن تحلیل اندازه فایل‌ها، پیدا کردن فایل‌های خیلی بزرگ، یا مانیتور کردن growth یک فولدر انجام بدهی.
- برای مسیرهای حجیم، بهتر است روی دیسک‌های شبکه‌ای کمی حوصله داشته باشی؛ os.walk همه چیز را می‌گردد.

یک بار روی پوشه پروژه‌ات اجرا کن، نتیجه‌اش معمولاً شگفت‌انگیز است 🤓
اگر مفید بود، برای بقیه پایتونیست‌ها هم بفرست تا آن‌ها هم از این اسکریپت ساده اما کاربردی استفاده کنند.

🔖 #Python #پایتون #Python #Automation #Filesystem #Script #CSV #pandas

👤 Developix

💎 Channel: @DevelopixPython
👍6👎31