آموزش تغییر نام فایل با پایتون
در این آموزش یاد میگیرید که چطور میتوانید با استفاده از پایتون نام فایل هایی که ذخیره کرده اید را تغییر دهید.
برای تغییر نام فایل ها از ماژول os استفاده میشود. ماژول os دارای متدهایی است که برای کار با سیستم عامل استفاده میشوند. این ماژول جزو کتابخانه استاندارد پایتون است و نیازی به نصب ندارد. برای تغییر نام فایل ها از متد rename استفاده میکنیم. سینتکس این متد به شکل زیر است:
os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)
پارامترهایی که باید به متد rename ارسال کنید به شکل زیر است:
- src: مسیر فایلی که قرار است نامش تغییر کند
- dst: مسیر فایل که قرار است بعد از تغییر نام ذخیره شود
- src_dir_fd: دایرکتوری فایل منبع(اختیاری)
- dst_dir_fd: دایرکتوری فایل مقصد(اختیاری)
مقاله پیشنهادی: اجرای مجدد تسک های ناموفق در سلری
دقت کنید که اگر فایل مشخص شده در dst از قبل وجود داشته باشد، سیستم عامل یک پیغام خطا نمایش خواهد داد. برای مثال در قطعه کد زیر نام یک فایل را تغییر میدهیم:
import os
# Absolute path of a file
old_name = r"E:\demos\files\reports\details.txt"
new_name = r"E:\demos\files\reports\new_details.txt"
# Renaming the file
os.rename(old_name, new_name)
همچنین میتوانید با متد rename نام چند فایل را همزمان تغییر دهید. برای اینکار ابتدا نیاز است نام تمام فایل هایی که در دایرکتوری هستند را با متد os.listdir بگیرید. سپس داخل یک حلقه اقدام به تغییر نام تمام فایل ها کنید. به مثال زیر دقت کنید:
import os
folder = r'E:\demos\files\reports\\'
count = 1
# count increase by 1 in each iteration
# iterate all files from a directory
for file_name in os.listdir(folder):
# Construct old file name
source = folder + file_name
# Adding the count to the new file name and extension
destination = folder + "sales_" + str(count) + ".txt"
# Renaming the file
os.rename(source, destination)
count += 1
print('All Files Renamed')
print('New Names are')
# verify the result
res = os.listdir(folder)
print(res)
ویدیو پیشنهادی: آموزش آرایه در پایتون
یکی دیگر از مواردی که ممکن است در حین تغییر نام فایل نیاز داشته باشید این است که قبل از تغییر نام بررسی کنید که آیا از قبل فایلی با این نام وجود دارد یا خیر. در زمان استفاده از متد rename اگر فایل مقصد از قبل وجود داشته باشد با خطای FileExistsError در ویندوز و OSError در لینوکس مواجه خواهید شد.
برای اینکار میتوانید از متد isfile استفاده کنید:
import os
old_name = r"E:\demos\files\reports\details.txt"
new_name = r"E:\demos\files\reports\new_details.txt"
if os.path.isfile(new_name):
print("The file already exists")
else:
# Rename the file
os.rename(old_name, new_name)