كيفية استخدام مكتبة pathlib لإدارة الملفات والمسارات في Python

تمت الكتابة بواسطة: عبد الحكيم

تارخ آخر تحديث: 19 ديسمبر 2024

محتوى المقال

كيفية استخدام مكتبة pathlib لإدارة الملفات والمسارات في Python

تُعد مكتبة pathlib واحدة من الأدوات الحديثة والقوية في Python للتعامل مع الملفات والمسارات بشكل أكثر كفاءة ووضوح. على عكس الأساليب القديمة التي تعتمد على مكتبة os، توفر pathlib واجهة كائنية (Object-Oriented) تجعل إدارة الملفات والمسارات أكثر سهولة وبديهية. في هذا المقال، سنتعلم كيفية استخدام pathlib للقيام بالمهام الأساسية مثل إنشاء الملفات والمجلدات، حذفها، نسخها، وغيرها.

ما هي مكتبة pathlib؟

pathlib هي مكتبة مدمجة في Python ابتداءً من الإصدار 3.4، وتوفر واجهة كائنية لإدارة الملفات والمسارات. بدلاً من التعامل مع المسارات كسلاسل نصية، تسمح لك pathlib باستخدام كائنات من نوع Path التي تحتوي على العديد من الدوال والخصائص التي تسهل التفاعل مع نظام الملفات.

البدء مع pathlib

لاستخدام pathlib، تحتاج أولاً إلى استيرادها في مشروعك:

from pathlib import Path

بعد استيراد Path، يمكنك البدء في التعامل مع المسارات بسهولة.

إنشاء كائن Path

يمكنك إنشاء كائن Path يشير إلى ملف أو مجلد معين ببساطة باستخدام اسم المسار:

# إنشاء كائن Path يشير إلى ملف معين
file_path = Path('path/to/your/file.txt')

# إنشاء كائن Path يشير إلى مجلد
folder_path = Path('path/to/your/folder')

بعد إنشاء كائن Path، يمكنك استخدام العديد من الوظائف المتاحة لتنفيذ عمليات على المسار.

إنشاء الملفات والمجلدات

يمكنك بسهولة إنشاء ملفات ومجلدات باستخدام مكتبة pathlib. دعونا نلقي نظرة على كيفية القيام بذلك.

إنشاء مجلد

لإنشاء مجلد جديد، يمكنك استخدام دالة mkdir() المتاحة في كائن Path:

# إنشاء مجلد جديد
folder_path.mkdir(parents=True, exist_ok=True)

في المثال أعلاه، parents=True تعني أنه سيتم إنشاء أي مجلدات رئيسية مفقودة في المسار، وexist_ok=True يعني أنه لن يتم إثارة استثناء إذا كان المجلد موجودًا بالفعل.

إنشاء ملف

لإنشاء ملف جديد، يمكنك ببساطة استخدام دالة touch():

# إنشاء ملف نصي جديد
file_path.touch(exist_ok=True)

كما هو الحال مع المجلدات، exist_ok=True يمنع إثارة استثناء إذا كان الملف موجودًا بالفعل.

حذف الملفات والمجلدات

لإزالة الملفات والمجلدات، توفر مكتبة pathlib طرقًا بسيطة وآمنة.

حذف ملف

لحذف ملف، يمكنك استخدام دالة unlink():

# حذف ملف
file_path.unlink()

تأكد من أن الملف موجود قبل محاولة حذفه، يمكنك استخدام exists() للتحقق:

# التحقق من وجود الملف قبل حذفه
if file_path.exists():
    file_path.unlink()

حذف مجلد

لحذف مجلد، يمكنك استخدام دالة rmdir():

# حذف مجلد فارغ
folder_path.rmdir()

لاحظ أن rmdir() يعمل فقط على المجلدات الفارغة. إذا كان المجلد يحتوي على ملفات أو مجلدات فرعية، ستحتاج إلى استخدام أساليب أخرى مثل shutil.rmtree().

استعراض محتويات المجلدات

لرؤية محتويات مجلد معين، يمكنك استخدام دالة iterdir():

# استعراض محتويات مجلد
for item in folder_path.iterdir():
    print(item)

سيتم عرض جميع الملفات والمجلدات الموجودة في المسار المحدد.

التحقق من نوع المسار

يمكنك بسهولة التحقق مما إذا كان كائن Path يشير إلى ملف أو مجلد باستخدام دوال is_file() وis_dir():

# التحقق مما إذا كان المسار ملفًا
if file_path.is_file():
    print("هذا المسار يشير إلى ملف.")

# التحقق مما إذا كان المسار مجلدًا
if folder_path.is_dir():
    print("هذا المسار يشير إلى مجلد.")

تساعدك هذه الدوال في التحقق من نوع المسار قبل تنفيذ أي عمليات عليه.

نسخ ونقل الملفات والمجلدات

على الرغم من أن مكتبة pathlib لا تحتوي على دوال مدمجة لنسخ أو نقل الملفات، يمكنك دمجها مع مكتبة shutil لتحقيق ذلك بسهولة.

نسخ ملف

لنسخ ملف من موقع إلى آخر، استخدم shutil.copy():

import shutil

# نسخ ملف إلى موقع جديد
shutil.copy(file_path, new_path)

نقل ملف

لنقل ملف، يمكنك استخدام shutil.move():

# نقل ملف إلى موقع جديد
shutil.move(file_path, new_path)

يمكنك استخدام هذه الدوال أيضًا لنقل ونسخ مجلدات كاملة.

التعامل مع المسارات المطلقة والنسبية

توفر مكتبة pathlib دوالًا للتحويل بين المسارات المطلقة والنسبية.

تحويل مسار نسبي إلى مطلق

لتحويل مسار نسبي إلى مسار مطلق، استخدم دالة resolve():

# تحويل مسار نسبي إلى مطلق
absolute_path = file_path.resolve()
print(absolute_path)

تُرجع resolve() المسار الكامل للملف أو المجلد.

الحصول على اسم الملف أو المجلد

يمكنك استخدام خاصية name للحصول على اسم الملف أو المجلد من المسار:

# الحصول على اسم الملف
file_name = file_path.name
print(file_name)

إذا كان المسار يشير إلى مجلد، ستُرجع name اسم المجلد الأخير في المسار.

قراءة وكتابة الملفات باستخدام pathlib

توفر مكتبة pathlib واجهة سهلة لقراءة وكتابة الملفات.

قراءة ملف نصي

لقراءة محتوى ملف نصي، يمكنك استخدام دالة read_text():

# قراءة محتوى ملف نصي
content = file_path.read_text()
print(content)

كتابة نص إلى ملف

للكتابة إلى ملف نصي، يمكنك استخدام دالة write_text():

# كتابة نص إلى ملف
file_path.write_text("هذا نص جديد")

هذه الدالة تكتب النص المحدد إلى الملف، وإذا كان الملف موجودًا مسبقًا، سيتم استبدال محتواه.

الخاتمة

تعتبر مكتبة pathlib من الأدوات القوية والبسيطة لإدارة الملفات والمسارات في Python. من خلال الواجهة الكائنية التي توفرها، يمكنك بسهولة تنفيذ العديد من المهام المتعلقة بالملفات والمجلدات، مثل الإنشاء، الحذف، النسخ، والنقل. نأمل أن يكون هذا المقال قد قدم لك فهمًا جيدًا لكيفية استخدام pathlib في مشاريعك البرمجية.

طور مهاراتك: مقالات يجب قراءتها في البرمجة