تعد إعادة تسمية الملفات مهمة شائعة في مجموعة متنوعة من بيئات البرمجة. توفر بايثون مجموعة شاملة من الأدوات والتقنيات لإعادة تسمية الملفات بفعالية. سنتناول في هذه المقالة طرق إعادة تسمية الملفات المختلفة في بايثون، من الطرق البسيطة إلى الطرق الأكثر تعقيدًا.
سنقدم أيضًا مقتطفات من التعليمات البرمجية، وأمثلة مع المخرجات، وحتى الجداول لتحسين تجربة التعلم.
فهم إعادة تسمية الملفات في بايثون
يجب أن تفهم أساسيات إعادة تسمية الملفات في بايثون قبل الخوض في التفاصيل. تتضمن إعادة تسمية الملف تغيير اسمه أو أجزاء معينة من اسمه.
يدعم بايثون مجموعة كبيرة ومتنوعة من المكتبات، بما في ذلك “os” و”shutil“، والتي توفر دوال للتفاعل مع نظام الملفات وإجراء العمليات المتعلقة بالملفات.
طرق بسيطة لإعادة تسمية الملفات
دعونا نبدأ ببعض تقنيات إعادة تسمية الملفات الأساسية في بايثون.
إعادة تسمية ملف واحد
يمكننا إعادة تسمية ملف واحد باستخدام دالة “rename” في وحدة “os”. فيما يلي مثال:
# Rename a File with Python os.rename()
import os
os.rename('old_name.txt', 'new_name.txt')
يتم استيراد وحدة os، التي توفر أدوات للتفاعل مع نظام التشغيل، بواسطة مقتطف التعليمات البرمجية. يتم تعيين اسم الملف الحالي المقصود، “old_name.txt”، إلى المتغير old_name، بينما يتم تعيين اسم الملف الجديد المقصود، “new_name.txt”، إلى المتغير new_name. ثم تتم إعادة تسمية الملف من old_name إلى new_name باستخدام الدالة os.rename()
.
إعادة تسمية الملفات في الدليل
يمكننا تكرار الملفات واستخدام دالة “os.rename
” لإعادة تسمية العديد من الملفات الموجودة داخل الدليل. فيما يلي مثال:
import os
directory = '/path/to/directory/'
for filename in os.listdir(directory):
if filename.endswith('.txt'):
old_name = os.path.join(directory, filename)
new_name = os.path.join(directory, filename.replace('.txt', '.csv'))
os.rename(old_name, new_name)
تم إعادة تسمية جميع الملفات ذات الامتداد “.txt” في الدليل المحدد إلى الامتداد “.csv”.
يتم استيراد وحدة os بواسطة مقتطف التعليمات البرمجية. ثم باستخدام os.listdir(directory)
، يتكرر التعليمات البرمجية خلال قائمة الملفات في الدليل المختار. إذا نجح الاختبار، فإنه يوحد مسار الدليل واسم الملف لإنتاج مسار الملف القديم (os.path.join(directory, filename))
.
يتحقق ما إذا كان اسم كل ملف ينتهي بـ “.txt” باستخدام التابع endswith()
. من خلال تبديل امتدادي اسم الملف “.txt” و”.csv”، يقوم filename.replace(‘.txt’, ‘.csv’)
بإنشاء مسار ملف جديد. يتم بعد ذلك إعطاء الكائن اسمًا جديدًا باستخدام دالة os.rename()
.
إعادة تسمية الملفات باستخدام مساحة زمنية
لإعادة تسمية الملفات باستخدام الطوابع الزمنية في بايثون، يجب تضمين تسمية زمنية في اسم الملف. عادةً ما يمثل تنسيق مثل “YYYYMMDDHHmmSS” التاريخ والوقت الحاليين على هذه التسمية. يتم الآن وضع ختم زمني على كل ملف ويكون له اسم ملف فريد.
# Rename Files with a Date Pattern
import os
import re
from datetime import datetime
dir = 'date_files/'
for file in os.listdir(dir):
old_filename = os.path.join(dir, file)
old_date = re.search(r'\d{2}-\d{2}-\d{4}', file).group()
new_date = datetime.strptime(old_date, '%M-%d-%Y').strftime('%Y-%M-%d')
new_file = file.replace(old_date, new_date)
new_filename = os.path.join(dir, new_file)
os.rename(old_filename, new_filename)
يتم تغيير أسماء ملفات الدليل “date_files/
” لتعكس تنسيقات التاريخ الجديدة بواسطة كود بايثون هذا. يتم تحديد التاريخ الحالي باستخدام التعبيرات العادية، وتحويله باستخدام datetime.strptime()
، ويتم تحديث اسم الملف بالتاريخ الجديد.
تقنيات إعادة تسمية الملفات المتقدمة
دعونا الآن نفحص الأساليب الأكثر تطوراً لإعادة تسمية الملفات في بايثون
إعادة تسمية الملفات بشكل مجمع
غالبًا ما تكون معالجة عدد كبير من الملفات ضرورية عند إعادة تسمية العديد من الملفات في وقت واحد. يمكن استخدام وحدتي “os” و”shutil” بشكل فعال لإنجاز هذه المهمة. فيما يلي مثال:
import os
import shutil
source_directory = '/path/to/source_directory/'
destination_directory = '/path/to/destination_directory/'
for filename in os.listdir(source_directory):
old_path = os.path.join(source_directory, filename)
new_path = os.path.join(destination_directory, filename)
shutil.move(old_path, new_path)
تم نقل كافة الملفات من دليل المصدر إلى دليل الوجهة مع الاحتفاظ بأسمائها الأصلية.
للحصول على قائمة بالملفات الموجودة في دليل المصدر، يستخدم هذا الجزء من التعليمات البرمجية الدالة os.listdir()
. ثم يتم إنشاء المسار القديم عن طريق دمج مسار دليل المصدر مع اسم الملف أثناء تكراره على كل ملف.
وبنفس الطريقة، يتم إنشاء المسار الجديد عن طريق دمج اسم الملف مع مسار الدليل الوجهة. وأخيرًا، تتم إعادة تسمية الملف بفعالية عن طريق نقله من المسار القديم إلى المسار الجديد باستخدام الدالة shutil.move()
.
إعادة تسمية الملفات باستخدام التعبيرات العادية
توفر التعبيرات العادية طريقة فعّالة لمطابقة أسماء الملفات وتعديلها. يمكننا استخدام وحدة re
مع وحدة os
لإعادة تسمية الملفات بناءً على أنماط محددة. فيما يلي مثال:
import os
import re
directory = '/path/to/directory/'
pattern = r'file_(\d+)\.txt'
replacement = r'new_file_\1.txt'
for filename in os.listdir(directory):
if re.match(pattern, filename):
new_name = re.sub(pattern, replacement, filename)
os.rename(os.path.join(directory, filename), os.path.join(directory, new_name))
تمت إعادة تسمية الملفات المطابقة للنمط “file_XXX.txt” إلى “new_file_XXX.txt” في الدليل المحدد.
لتكرار كل الملفات في الدليل المقدم، يستخدم مقتطف التعليمات البرمجية هذا re-module ودالة os.listdir()
. ويحدد ما إذا كان اسم كل ملف يتوافق مع نمط التعبير العادي المقدم في النمط. وإذا كان هناك تطابق، فسيتم استخدام نمط الاستبدال المشار إليه في الاستبدال لاستبدال النمط المطابق. ثم تتم إعادة تسمية الملف باستخدام الاسم الجديد الناتج ودالة os.rename()
.
خطوات إعادة تسمية الملفات باستخدام بايثون
في هذا القسم، سنتعلم كيفية إعادة تسمية الملفات باستخدام بايثون. فيما يلي إجراء خطوة بخطوة لإعادة تسمية الملفات في نظام التشغيل windowsOS. ومع ذلك، من الضروري معرفة أن الإجراء يختلف باختلاف نظام التشغيل. لنبدأ!
في مقالة إعادة تسمية الملفات في بايثون، نظرنا في عدد من استراتيجيات إعادة تسمية الملفات في بايثون. تمت مناقشة كل من الطرق الأساسية والمعقدة، بما في ذلك إعادة تسمية الملفات الفردية، وإعادة تسمية الملفات بشكل جماعي، واستخدام التعبيرات العادية. يمكنك إعادة تسمية الملفات بشكل فعال وفقًا لاحتياجاتك باستخدام هذه الأساليب. قبل تنفيذ عمليات إعادة تسمية الملفات المطولة، ضع في اعتبارك اتباع أفضل الممارسات واختبار الكود الخاص بك بشكل صحيح.
اكتشاف المزيد من بايثون العربي
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.