📌 امروز یک اسکریپت کاملاً کاربردی میسازیم: اسکن یک پوشه، پیدا کردن فایلها، و خروجی گرفتن یک گزارش CSV با Python.
سناریو واقعی 👇
فرض کن روی سرور یا سیستم خودت هزاران فایل داری و میخواهی:
- اسم همهی فایلها
- سایز هر فایل
- تاریخ آخرین تغییر
رو بهصورت یک گزارش تمیز در یک فایل CSV داشته باشی تا بعداً با Excel یا pandas تحلیلش کنی.
این کار را با ماژولهای استاندارد os و pathlib و csv انجام میدهیم، کاملاً بدون وابستگی خارجی. برای جزئیات بیشتر هم میشود به مستندات رسمی Python سر زد:
os
pathlib
csv
💡 ایده کلی
یک مسیر ورودی میگیریم (مثلاً یک پوشه پروژه، یا فولدر logs سرور)، روی کل زیرپوشهها loop میزنیم، اطلاعات هر فایل را میخوانیم و در یک فایل
نمونه کد کامل:
نکتهها و کاربردهای واقعی 🔍
- این اسکریپت روی هر سیستم دارای Python 3 اجرا میشود، بدون نصب پکیج اضافه.
- خروجی
- برای مسیرهای حجیم، بهتر است روی دیسکهای شبکهای کمی حوصله داشته باشی؛
یک بار روی پوشه پروژهات اجرا کن، نتیجهاش معمولاً شگفتانگیز است 🤓
اگر مفید بود، برای بقیه پایتونیستها هم بفرست تا آنها هم از این اسکریپت ساده اما کاربردی استفاده کنند.
🔖 #Python #پایتون #Python #Automation #Filesystem #Script #CSV #pandas
👤 Developix
💎 Channel: @DevelopixPython
سناریو واقعی 👇
فرض کن روی سرور یا سیستم خودت هزاران فایل داری و میخواهی:
- اسم همهی فایلها
- سایز هر فایل
- تاریخ آخرین تغییر
رو بهصورت یک گزارش تمیز در یک فایل 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👎3❤1