كيفية إدارة الدليل الحالي (Current Directory) في Python باستخدام os و pathlib

1. ما هو الدليل الحالي؟

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

دور الدليل الحالي

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

2. كيفية الحصول على الدليل الحالي في Python

للحصول على الدليل الحالي، هناك طريقتان باستخدام مكتبة os ومكتبة pathlib. من خلال التبديل بينهما، يمكنك التعامل مع الأدلة بمرونة أكبر.

2.1 الحصول على الدليل الحالي باستخدام مكتبة os

تُعتبر مكتبة os من مكتبات Python القياسية، وهي توفر أدوات للتعامل مع العمليات المعتمدة على نظام التشغيل. للحصول على الدليل الحالي، نستخدم os.getcwd().
import os
current_directory = os.getcwd()
print(current_directory)
عند تنفيذ هذا الكود، سيتم عرض الدليل الحالي كمسار مطلق. على سبيل المثال، إذا كان بيئة العمل في “/home/user/MyPythonProject”، فسيتم عرضه. هذه الوظيفة مفيدة للتحقق مما إذا كان السكربت يعمل في الدليل الصحيح.

2.2 الحصول على الدليل الحالي باستخدام مكتبة pathlib

مكتبة pathlib، التي تم تقديمها في Python 3.4، تم تصميمها لتوفير أسلوب أكثر سهولة في التعامل مع نظام الملفات. باستخدام pathlib.Path.cwd()، يمكن الحصول على الدليل الحالي ككائن Path.
from pathlib import Path
current_directory = Path.cwd()
print(current_directory)
كائن Path مفيد جدًا عند التعامل مع هياكل الأدلة. كما يتيح إجراء عمليات معقدة على المسارات مثل ضم المسارات أو التحقق من وجود الملفات بسهولة.
侍エンジニア塾

3. كيفية تغيير الدليل الحالي في Python

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

3.1 تغيير الدليل الحالي باستخدام مكتبة os

لتغيير الدليل الحالي، نستخدم os.chdir(). يتيح ذلك الانتقال إلى دليل جديد بسهولة. المثال التالي يغير الدليل الحالي إلى /home/user/NewDirectory.
import os
os.chdir('/home/user/NewDirectory')
print(os.getcwd())
في هذا المثال، ننتقل إلى الدليل الجديد ونتحقق من أن التغيير قد تم بنجاح.

3.2 استخدام مكتبة pathlib مع os

لا توفر مكتبة pathlib وظيفة لتغيير الدليل الحالي بشكل مباشر، ولكن يمكن دمجها مع os.chdir() للاستخدام العملي. المثال التالي يوضح كيفية ذلك:
from pathlib import Path
import os

new_directory = Path('/home/user/NewDirectory')
os.chdir(new_directory)
print(Path.cwd())
بهذه الطريقة، يمكن الاستفادة من كائن Path أثناء تغيير الدليل الحالي.

4. الحصول على قائمة الملفات في الدليل الحالي

إذا أردت معرفة الملفات والمجلدات الموجودة في الدليل الحالي، يمكنك استخدام os.listdir(). تُرجع هذه الدالة قائمة بأسماء جميع الملفات والمجلدات في الدليل المحدد.
import os
current_directory = os.getcwd()
files = os.listdir(current_directory)
print(files)
يعرض هذا الكود جميع الملفات والمجلدات في شكل قائمة، مما يسهل التحقق من محتوى الدليل قبل المتابعة بعمليات الملفات.
侍エンジニア塾

5. استكشاف أخطاء التعامل مع الدليل الحالي وإصلاحها

قد تظهر بعض الأخطاء غير المتوقعة أثناء التعامل مع الدليل الحالي. على سبيل المثال، قد يكون السكربت يعمل في دليل غير مقصود، أو قد يظهر خطأ “لم يتم العثور على الملف”.

المشاكل الشائعة وحلولها

  1. تشغيل السكربت من دليل غير مقصود لحل هذه المشكلة، يجب التحقق من الدليل الحالي باستخدام os.getcwd() في بداية السكربت. إذا كان مختلفًا، يمكن تعديله باستخدام os.chdir().
  2. خطأ FileNotFoundError يحدث هذا عندما لا يتم تحديد مسار الملف بشكل صحيح. لتجنب ذلك، يمكن استخدام os.path.abspath() للتحقق من المسار المطلق للملف.
import os
file_path = os.path.abspath('myfile.txt')
print(file_path)
بهذا الشكل، يتم عرض المسار المطلق للملف وتجنب الأخطاء الناتجة عن مسارات غير صحيحة.

6. الخلاصة

يعد التعامل مع الدليل الحالي في Python أمرًا مهمًا جدًا لإدارة عمليات القراءة والكتابة على الملفات. بإتقان استخدام مكتبة os و pathlib، يمكنك تحسين كفاءة إدارة الأدلة بشكل كبير. التحقق من الدليل الحالي وتغييره بدقة يساعد على تعزيز موثوقية البرنامج وتجنب المشاكل قبل وقوعها.
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール