Python إعادة تسمية الملف والدليل باستخدام os.rename()

⚡ ملخص ذكي

Python يُعيد تسمية الملفات والمجلدات باستخدام os.rename(). ستتعلم هنا os.rename() و os.renames() و shutil.move() و pathlib Path.rename()، بالإضافة إلى كيفية إعادة تسمية مجلد وإعادة تسمية عدة ملفات دفعة واحدة مع أمثلة واضحة.

  • ✏️ os.rename(): تقوم الدالة os.rename(src, dst) بإعادة تسمية ملف أو دليل؛ ويجب أن يكون المصدر موجودًا.
  • 🗂️ os.renames(): تقوم الدالة os.renames() أيضًا بإنشاء مجلدات الوجهة المفقودة تلقائيًا.
  • 🚚 shutil.move(): تقوم الدالة shutil.move() بإعادة تسمية الملفات ونقلها عبر أنظمة الملفات.
  • 🐍 pathlib: تقوم الدالة Path.rename() بإعادة تسمية الملفات بطريقة البرمجة الكائنية (Python 3.4+).
  • 🤖 مساعدة الذكاء الاصطناعي: تقوم أدوات الذكاء الاصطناعي مثل Copilot بإنشاء رمز إعادة التسمية ورمز إعادة التسمية المجمعة على الفور.

Python إعادة تسمية الملف os.rename()

Python إعادة تسمية الملف

Python إعادة تسمية الملف (). هي طريقة تستخدم لإعادة تسمية ملف أو دليل في Python برمجة. ال Python يمكن الإعلان عن أسلوب الملف rename() عن طريق تمرير وسيطتين باسم src (المصدر) وdst (الوجهة).

بناء الجملة

هذا هو بناء جملة طريقة os.rename()

os.rename(src, dst)

المعاملات

سرك: المصدر هو اسم الملف أو الدليل. يجب أن تكون موجودة بالفعل.

التوقيت الصيفي: الوجهة هي الاسم الجديد للملف أو الدليل الذي تريد تغييره.

على سبيل المثال:

import os  
os.rename('guru99.txt','career.guru99.txt')

دعونا ننظر إلى المثال بالتفصيل

يمكنك إعادة تسمية الملف الأصلي، لقد قمنا بتغيير اسم الملف من "Guru"99.txt" إلى "Career.guru99.txt".

Python إعادة تسمية الملف

  • لإعادة تسمية الملف "guru99.txt"، سنستخدم "وظيفة إعادة التسمية" في وحدة نظام التشغيل
  • لذا، عند تنفيذ التعليمات البرمجية، يمكنك ملاحظة إنشاء ملف جديد "career.guru99.txt" على الجانب الأيمن من اللوحة، والذي قمنا بإعادة تسميته لملفنا الأصلي.

ها هو الكود الكامل

import os
import shutil
from os import path

def main():
	# make a duplicate of an existing file
    if path.exists("guru99.txt"):
	# get the path to the file in the current directory
        src = path.realpath("guru99.txt");
		
	# rename the original file
        os.rename('guru99.txt','career.guru99.txt') 
		
if __name__ == "__main__":
    main()

كيفية إعادة تسمية مجلد في Python

تقوم الدالة os.rename() بإعادة تسمية المجلدات أيضاً، وليس الملفات فقط. مرر اسم المجلد الحالي كمصدر والاسم الجديد كوجهة.

import os
os.rename("old_directory", "new_directory")

إذا لم يكن دليل المصدر موجودًا، Python يُثير خطأ FileNotFoundError، لذا من الممارسات الجيدة التحقق من المسار أولاً.

إعادة تسمية ملف باستخدام os.renames()

تقوم الدالة os.renames() بإعادة تسمية الملف وإنشاء أي مجلدات وسيطة مفقودة في مسار الوجهة تلقائيًا. كما أنها تزيل المجلدات الفارغة المتبقية في مسار المصدر.

import os
os.renames("guru99.txt", "archive/2024/career.txt")

هنا يتم إنشاء مجلدي الأرشيف و2024 تلقائيًا إذا لم يكونا موجودين بالفعل.

إعادة تسمية ملف باستخدام shutil.move()

تقوم الدالة shutil.move() بنقل ملف إلى موقع جديد، مما يؤدي فعليًا إلى إعادة تسميته عندما تكون الوجهة هي نفس الدليل.

import shutil
shutil.move("guru99.txt", "career.guru99.txt")

على عكس os.rename()، يمكن لـ shutil.move() أيضًا نقل ملف عبر أنظمة ملفات أو محركات أقراص مختلفة.

إعادة تسمية ملف باستخدام وحدة pathlib

In Python 3.4 والإصدارات اللاحقة، توفر وحدة pathlib طريقة Path.rename() الموجهة للكائنات لإعادة تسمية الملفات.

from pathlib import Path

file = Path("guru99.txt")
file.rename("career.guru99.txt")

تقوم الدالة rename() بإرجاع كائن Path جديد يشير إلى الملف الذي تمت إعادة تسميته.

كيفية إعادة تسمية ملفات متعددة في Python

لإعادة تسمية عدة ملفات دفعة واحدة، استخدم الدالة os.listdir() للمرور على الملفات في مجلد معين، ثم استدعِ الدالة os.rename() لكل ملف. يضيف المثال أدناه بادئة مرقمة إلى كل ملف.

import os

folder = "myfiles"
for count, filename in enumerate(os.listdir(folder)):
    new_name = f"file_{count}.txt"
    os.rename(os.path.join(folder, filename), os.path.join(folder, new_name))

يضمن استخدام os.path.join() عمل الكود بشكل صحيح على أي نظام تشغيل.

الأسئلة الشائعة

استورد وحدة os واستدعِ الدالة os.rename(src, dst)، مع تمرير اسم الملف الحالي والاسم الجديد. يجب أن يكون الملف المصدر موجودًا بالفعل، أو Python يُثير خطأ FileNotFoundError.

تقوم الدالة os.rename() بإعادة تسمية ملف أو دليل واحد، بينما تقوم الدالة os.renames() أيضًا بإنشاء أي أدلة وسيطة مفقودة وإزالة مجلدات المصدر الفارغة بعد النقل.

نعم. تقوم الدالة shutil.move(src, dst) بإعادة تسمية الملف عندما تكون الوجهة هي نفس المجلد، ويمكنها أيضًا نقل الملفات عبر أنظمة ملفات مختلفة، على عكس الدالة os.rename().

استخدم الدالة os.rename('old_dir', 'new_dir'). تعمل نفس الدالة os.rename() مع الملفات والمجلدات على حد سواء، طالما أن المجلد المصدر موجود.

قم بالمرور على عناصر المجلد باستخدام os.listdir(folder) واستدعِ الدالة os.rename() لكل ملف. استخدم الدالة os.path.join() لإنشاء مسارات كاملة لضمان عمل الكود على أي نظام تشغيل.

تقوم المساعدات الذكية مثل GitHub Copilot بإكمال استدعاءات os.rename() و pathlib تلقائيًا، وإنشاء حلقات إعادة تسمية مجمعة من تعليق يصف نمط التسمية الذي تريده.

نعم. يمكن للأدوات المدعومة بالذكاء الاصطناعي أتمتة كتابة نصوص إعادة التسمية المجمعة، وتطبيق أنماط مثل الترقيم أو بادئات التاريخ، وإضافة معالجة الأخطاء للأسماء المفقودة أو المكررة.

On Windowsتُثير الدالة os.rename() خطأ FileExistsError إذا كان الملف الوجهة موجودًا. في أنظمة يونكس، تقوم هذه الدالة بالكتابة فوق الملف دون تنبيه. لذا، يُنصح بالتحقق من وجود الملف باستخدام os.path.exists() أولًا لتجنب فقدان البيانات.

تلخيص هذه التدوينة بـ: