اتوماسیون پوشه‌ها و فایل‌ها با پایتون

اتوماسیون پوشه‌ها و فایل‌ها با پایتون

اتوماسیون وظایف مربوط به پوشه‌ها و فایل‌ها یکی از قدرتمندترین کاربردهای پایتون است. این قابلیت به شما امکان می‌دهد تا فرآیندهای تکراری و زمان‌بر را به صورت خودکار انجام دهید، که این امر می‌تواند بهره‌وری را به طور چشمگیری افزایش دهد. در این مقاله، به بررسی مفاهیم کلیدی و تکنیک‌های عملی برای اتوماسیون پوشه‌ها و فایل‌ها با استفاده از پایتون خواهیم پرداخت. این آموزش در دسته بندی ‘اتوماسیون و اسکریپت‌نویسی’ قرار می‌گیرد و برای افراد با دانش پایه پایتون مناسب است.

مقدمه‌ای بر ماژول os

ماژول os در پایتون، رابطی برای تعامل با سیستم عامل فراهم می‌کند. این ماژول شامل توابعی برای انجام عملیات مختلفی مانند ایجاد، حذف، تغییر نام و دسترسی به فایل‌ها و پوشه‌ها است. برای استفاده از این ماژول، ابتدا باید آن را وارد (import) کنید:

import os

با استفاده از ماژول os، می‌توانید مسیرهای فایل و پوشه را به صورت مستقل از سیستم عامل مدیریت کنید. این امر باعث می‌شود که اسکریپت‌های شما قابل حمل و اجرا بر روی سیستم‌عامل‌های مختلف باشند.

کار با مسیرها (Paths)

مسیرها (Paths) آدرس فایل‌ها و پوشه‌ها را در سیستم فایل مشخص می‌کنند. ماژول os.path شامل توابعی برای دستکاری و بررسی مسیرها است. برخی از توابع مهم عبارتند از:

  • os.path.join(path1, path2, ...): این تابع مسیرهای مختلف را به هم متصل می‌کند و یک مسیر کامل ایجاد می‌کند.
  • os.path.exists(path): بررسی می‌کند که آیا یک فایل یا پوشه در مسیر مشخص شده وجود دارد یا خیر.
  • os.path.isfile(path): بررسی می‌کند که آیا مسیر مشخص شده به یک فایل اشاره دارد یا خیر.
  • os.path.isdir(path): بررسی می‌کند که آیا مسیر مشخص شده به یک پوشه اشاره دارد یا خیر.
  • os.path.abspath(path): مسیر نسبی را به مسیر مطلق تبدیل می‌کند.
  • os.path.basename(path): نام فایل یا پوشه را از مسیر استخراج می‌کند.
  • os.path.dirname(path): پوشه حاوی فایل یا پوشه را از مسیر استخراج می‌کند.

مثال:


import os

path = os.path.join("folder1", "folder2", "file.txt")
print(path)  # Output: folder1/folder2/file.txt

if os.path.exists(path):
    print("فایل وجود دارد.")
else:
    print("فایل وجود ندارد.")

ایجاد و حذف پوشه‌ها و فایل‌ها

ماژول os توابعی برای ایجاد و حذف پوشه‌ها و فایل‌ها نیز فراهم می‌کند:

  • os.mkdir(path): یک پوشه جدید در مسیر مشخص شده ایجاد می‌کند.
  • os.makedirs(path): پوشه‌های تودرتو را در مسیر مشخص شده ایجاد می‌کند.
  • os.rmdir(path): یک پوشه خالی را حذف می‌کند.
  • os.removedirs(path): پوشه‌های تودرتو را به صورت بازگشتی حذف می‌کند (فقط پوشه‌های خالی).
  • os.remove(path): یک فایل را حذف می‌کند.

مثال:


import os

# ایجاد پوشه
os.mkdir("new_folder")

# ایجاد پوشه‌های تودرتو
os.makedirs("folder1/folder2/folder3")

# حذف پوشه
# os.rmdir("new_folder") # فقط پوشه‌های خالی را حذف می‌کند

# حذف فایل
# os.remove("file.txt")

توجه: قبل از حذف فایل‌ها و پوشه‌ها، حتماً از وجود آن‌ها اطمینان حاصل کنید و از اطلاعات مهم پشتیبان‌گیری کنید.

لیست کردن محتویات یک پوشه

برای لیست کردن فایل‌ها و پوشه‌های موجود در یک پوشه، می‌توانید از تابع os.listdir(path) استفاده کنید. این تابع لیستی از نام فایل‌ها و پوشه‌ها را برمی‌گرداند.

مثال:


import os

folder_path = "my_folder"

if os.path.exists(folder_path):
    contents = os.listdir(folder_path)
    print("محتویات پوشه:", contents)
else:
    print("پوشه وجود ندارد.")

تغییر نام فایل‌ها و پوشه‌ها

برای تغییر نام یک فایل یا پوشه، می‌توانید از تابع os.rename(old_path, new_path) استفاده کنید.

مثال:


import os

old_name = "old_file.txt"
new_name = "new_file.txt"

if os.path.exists(old_name):
    os.rename(old_name, new_name)
    print("نام فایل تغییر یافت.")
else:
    print("فایل وجود ندارد.")

جستجو در فایل‌ها و پوشه‌ها

ماژول os امکان جستجو در فایل‌ها و پوشه‌ها را نیز فراهم می‌کند. برای این منظور، می‌توانید از تابع os.walk(path) استفاده کنید. این تابع به صورت بازگشتی در تمام زیرپوشه‌های یک پوشه می‌گردد و اطلاعات مربوط به هر فایل و پوشه را برمی‌گرداند.

مثال:


import os

folder_path = "my_folder"

for root, directories, files in os.walk(folder_path):
    print("پوشه:", root)
    for directory in directories:
        print("  پوشه:", directory)
    for file in files:
        print("  فایل:", file)

کار با فایل‌ها (خواندن و نوشتن)

علاوه بر ماژول os، برای کار با محتویات فایل‌ها، می‌توانید از توابع داخلی پایتون مانند open()، read()، write() و close() استفاده کنید.

مثال:


# نوشتن در فایل
with open("my_file.txt", "w") as f:
    f.write("این یک خط متن است.n")
    f.write("این خط دوم است.n")

# خواندن از فایل
with open("my_file.txt", "r") as f:
    content = f.read()
    print(content)

اتوماسیون کارهای پیچیده‌تر

با ترکیب توابع ماژول os و سایر ماژول‌های پایتون مانند shutil (برای کپی کردن و انتقال فایل‌ها) و datetime (برای کار با تاریخ و زمان)، می‌توانید کارهای پیچیده‌تری را به صورت خودکار انجام دهید. به عنوان مثال، می‌توانید یک اسکریپت بنویسید که به طور خودکار فایل‌های قدیمی‌تر از یک تاریخ مشخص را حذف کند، یا فایل‌های با پسوند خاص را از یک پوشه به پوشه دیگر کپی کند.

نکات مهم

  • همیشه قبل از انجام عملیات حذف، از وجود فایل‌ها و پوشه‌ها اطمینان حاصل کنید.
  • از پشتیبان‌گیری از اطلاعات مهم قبل از انجام هرگونه تغییر در سیستم فایل غافل نشوید.
  • از مسیرهای مطلق (absolute paths) به جای مسیرهای نسبی (relative paths) استفاده کنید تا از بروز خطا جلوگیری کنید.
  • برای خوانایی بیشتر کد، از نام‌های معنادار برای متغیرها و توابع استفاده کنید.

با استفاده از این تکنیک‌ها و مفاهیم، می‌توانید فرآیندهای مربوط به پوشه‌ها و فایل‌ها را به طور خودکار انجام دهید و بهره‌وری خود را به طور چشمگیری افزایش دهید. اتوماسیون با پایتون ابزاری قدرتمند برای ساده‌سازی و بهینه‌سازی وظایف روزمره است.

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *