ساخت اسکریپت Rename فایلها با پایتون: اتوماسیون و اسکریپتنویسی
در دنیای دیجیتال امروز، مدیریت فایلها بخش مهمی از کار روزمره بسیاری از افراد است. گاهی اوقات نیاز به تغییر نام تعداد زیادی فایل به صورت یکجا داریم. انجام این کار به صورت دستی میتواند زمانبر و خستهکننده باشد. خوشبختانه، با استفاده از زبان برنامهنویسی پایتون و کتابخانههای آن، میتوان این فرآیند را به طور خودکار انجام داد و در وقت و انرژی صرفهجویی کرد. این مقاله به آموزش ساخت اسکریپتهای rename فایلها با پایتون میپردازد و به شما کمک میکند تا با اصول اتوماسیون و اسکریپتنویسی آشنا شوید.
پیشنیازها
قبل از شروع، مطمئن شوید که پایتون روی سیستم شما نصب شده است. همچنین، آشنایی با مفاهیم اولیه برنامهنویسی پایتون مانند متغیرها، حلقهها، شرطها و توابع ضروری است. برای کار با فایلها، از ماژول os در پایتون استفاده خواهیم کرد. این ماژول امکانات زیادی برای تعامل با سیستم عامل، از جمله مدیریت فایلها و دایرکتوریها، فراهم میکند.
ماژول os و کار با فایلها
ماژول os یکی از پرکاربردترین ماژولها در پایتون برای انجام کارهای مربوط به سیستم عامل است. برای استفاده از این ماژول، ابتدا باید آن را import کنیم:
import os
با استفاده از این ماژول، میتوانیم به اطلاعات فایلها دسترسی پیدا کنیم، فایلها را ایجاد، حذف، تغییر نام دهیم و دایرکتوریها را مدیریت کنیم. برخی از توابع مهم ماژول os که در این مقاله از آنها استفاده خواهیم کرد عبارتند از:
os.listdir(path): لیستی از نام فایلها و دایرکتوریهای موجود در مسیر مشخص شده (path) را برمیگرداند.os.rename(old_name, new_name): نام یک فایل یا دایرکتوری را ازold_nameبهnew_nameتغییر میدهد.os.path.join(path, filename): یک مسیر کامل را با ترکیب مسیر (path) و نام فایل (filename) ایجاد میکند.os.path.splitext(filename): نام فایل را به دو بخش نام اصلی و پسوند تقسیم میکند.
اسکریپت ساده Rename فایلها
بیایید با یک اسکریپت ساده شروع کنیم که نام تمام فایلهای موجود در یک دایرکتوری را به صورت پیشفرض تغییر میدهد. این اسکریپت نام تمام فایلها را به “file_1.txt”، “file_2.txt” و غیره تغییر میدهد.
import os
directory = "path/to/your/directory" # مسیر دایرکتوری مورد نظر را جایگزین کنید
count = 1
for filename in os.listdir(directory):
if os.path.isfile(os.path.join(directory, filename)):
new_name = f"file_{count}.txt"
old_path = os.path.join(directory, filename)
new_path = os.path.join(directory, new_name)
os.rename(old_path, new_path)
count += 1
print("Rename completed!")
در این اسکریپت، ابتدا مسیر دایرکتوری مورد نظر را مشخص میکنیم. سپس، با استفاده از حلقه for، تمام فایلهای موجود در دایرکتوری را پیمایش میکنیم. برای هر فایل، یک نام جدید ایجاد میکنیم و با استفاده از تابع os.rename() نام فایل را تغییر میدهیم. در نهایت، یک پیام تأیید چاپ میکنیم.
Rename فایلها با الگوهای خاص
در بسیاری از موارد، نیاز به تغییر نام فایلها بر اساس یک الگوی خاص داریم. به عنوان مثال، ممکن است بخواهیم تمام فایلهایی که پسوند “.jpg” دارند را به “.png” تغییر دهیم. یا ممکن است بخواهیم یک پیشوند یا پسوند خاص به نام تمام فایلها اضافه کنیم.
در اینجا یک اسکریپت برای تغییر پسوند فایلها از “.jpg” به “.png” آورده شده است:
import os
directory = "path/to/your/directory" # مسیر دایرکتوری مورد نظر را جایگزین کنید
for filename in os.listdir(directory):
if filename.endswith(".jpg"):
new_name = filename.replace(".jpg", ".png")
old_path = os.path.join(directory, filename)
new_path = os.path.join(directory, new_name)
os.rename(old_path, new_path)
print("Rename completed!")
در این اسکریپت، از متد endswith() برای بررسی اینکه آیا نام فایل با “.jpg” به پایان میرسد استفاده میکنیم. اگر این شرط برقرار باشد، با استفاده از متد replace() پسوند فایل را از “.jpg” به “.png” تغییر میدهیم و سپس نام فایل را تغییر میدهیم.
Rename فایلها با استفاده از عبارات با قاعده (Regular Expressions)
برای تغییر نام فایلها با الگوهای پیچیدهتر، میتوانیم از عبارات با قاعده استفاده کنیم. عبارات با قاعده ابزاری قدرتمند برای جستجو و دستکاری متن هستند. ماژول re در پایتون امکان استفاده از عبارات با قاعده را فراهم میکند.
در اینجا یک اسکریپت برای حذف اعداد از نام فایلها با استفاده از عبارات با قاعده آورده شده است:
import os
import re
directory = "path/to/your/directory" # مسیر دایرکتوری مورد نظر را جایگزین کنید
for filename in os.listdir(directory):
new_name = re.sub(r'd+', '', filename) # حذف تمام اعداد از نام فایل
old_path = os.path.join(directory, filename)
new_path = os.path.join(directory, new_name)
os.rename(old_path, new_path)
print("Rename completed!")
در این اسکریپت، از تابع re.sub() برای جایگزینی تمام اعداد (d+) در نام فایل با یک رشته خالی ('') استفاده میکنیم. این کار باعث حذف تمام اعداد از نام فایل میشود.
مدیریت خطاها
هنگام کار با فایلها، ممکن است با خطاها مواجه شویم. به عنوان مثال، ممکن است فایل مورد نظر وجود نداشته باشد یا دسترسی به آن را نداشته باشیم. برای جلوگیری از توقف اسکریپت در صورت بروز خطا، باید از مدیریت خطاها استفاده کنیم. میتوانیم از بلوکهای try-except برای این منظور استفاده کنیم.
در اینجا یک مثال از مدیریت خطاها در اسکریپت rename فایلها آورده شده است:
import os
directory = "path/to/your/directory" # مسیر دایرکتوری مورد نظر را جایگزین کنید
for filename in os.listdir(directory):
try:
new_name = "new_" + filename
old_path = os.path.join(directory, filename)
new_path = os.path.join(directory, new_name)
os.rename(old_path, new_path)
print(f"Renamed {filename} to {new_name}")
except FileNotFoundError:
print(f"File not found: {filename}")
except PermissionError:
print(f"Permission denied: {filename}")
except Exception as e:
print(f"An error occurred: {filename} - {e}")
print("Rename completed!")
در این اسکریپت، هر عملیات rename فایل در یک بلوک try قرار داده شده است. اگر در حین انجام این عملیات خطایی رخ دهد، بلوک except مربوطه اجرا میشود. این کار باعث میشود که اسکریپت به جای توقف، به پردازش فایلهای بعدی ادامه دهد.
نکات تکمیلی
هنگام ساخت اسکریپتهای rename فایلها، به نکات زیر توجه کنید:
- همیشه قبل از اجرای اسکریپت، از فایلهای خود پشتیبانگیری کنید.
- قبل از اجرای اسکریپت، آن را به طور کامل تست کنید تا مطمئن شوید که به درستی کار میکند.
- از نامهای معنادار برای متغیرها و توابع استفاده کنید تا کد شما خواناتر شود.
- از کامنتها برای توضیح کد خود استفاده کنید.
- در صورت نیاز، از مدیریت خطاها برای جلوگیری از توقف اسکریپت در صورت بروز خطا استفاده کنید.
نتیجهگیری
در این مقاله، به آموزش ساخت اسکریپتهای rename فایلها با پایتون پرداختیم. با استفاده از ماژول os و توابع آن، میتوانیم به راحتی نام فایلها را به صورت خودکار تغییر دهیم و در وقت و انرژی صرفهجویی کنیم. همچنین، با استفاده از عبارات با قاعده و مدیریت خطاها، میتوانیم اسکریپتهای قدرتمندتر و قابل اعتمادتری ایجاد کنیم. امیدواریم این مقاله به شما در یادگیری اتوماسیون و اسکریپتنویسی با پایتون کمک کند.

بدون دیدگاه