目次
1. الطريقة الأساسية لإنشاء مجلد في Python
في Python، توجد طريقة بسيطة لإنشاء مجلد باستخدام المكتبة القياسية. الأكثر استخدامًا هو وحدةos
. في هذا القسم، سنشرح بالتفصيل طريقة إنشاء المجلد باستخدام وحدة os
.طريقة إنشاء مجلد في Python: وحدة os
باستخدام وحدةos
، يمكنك إنشاء مجلد داخل البرنامج. هذا مفيد عندما تريد تنظيم البيانات أو إنشاء دليل لحفظ السجلات، وغيرها. طريقة إنشاء المجلد الأساسية هي كما يلي.import os
# تحديد مسار المجلد الذي سيتم إنشاؤه
path = 'example_folder'
# إنشاء المجلد
os.mkdir(path)
في هذا الكود، نستخدم الدالة os.mkdir()
لإنشاء مجلد جديد باسم «example_folder». ومع ذلك، إذا كان المجلد موجودًا بالفعل، فإن هذه الدالة ستثير استثناء FileExistsError
.إنشاء مجلدات متعددة المستويات: os.makedirs()
إذا كنت ترغب في إنشاء أكثر من مجلد واحد، أي إنشاء هيكل دليل متعدد المستويات مرة واحدة، يمكنك استخدام الدالةos.makedirs()
.import os
# تحديد مسار المجلد متعدد المستويات
path = 'example_folder/subfolder'
# إنشاء المجلد حتى إذا لم يكن الدليل الأب موجودًا
os.makedirs(path)
بهذه الطريقة، باستخدام os.makedirs()
يمكنك إنشاء الأدلة الأب غير الموجودة في المسار المحدد في نفس الوقت. وهذا يتيح لك إنشاء بنية المجلدات دفعة واحدة بسهولة.معالجة الأخطاء: استخدام exist_ok=True
إذا كان المجلد موجودًا بالفعل وتريد تجنب حدوث خطأ ومتابعة التنفيذ، يمكنك استخدام خيارexist_ok
. عند ضبطه كما في المثال أدناه، لن يحدث خطأ حتى لو كان المجلد موجودًا.import os
path = 'example_folder/subfolder'
# تجاهل الخطأ حتى إذا كان المجلد موجودًا بالفعل
os.makedirs(path, exist_ok=True)
بهذا، حتى إذا حاول البرنامج إنشاء نفس المجلد في كل مرة يتم فيها تشغيله، لن يحدث خطأ، مما يتيح كتابة كود قوي.
2. إنشاء مجلد باستخدام وحدة Pathlib
منذ Python 3.4، تمت إضافة وحدةpathlib
إلى المكتبة القياسية. تتيح هذه الوحدة التعامل مع المسارات بطريقة كائنية التوجه، ويمكن من خلالها إنشاء المجلدات بشكل بديهي. في هذا القسم، سنشرح طريقة إنشاء المجلدات باستخدام وحدة pathlib
.كيفية استخدام وحدة Pathlib
باستخدامpathlib.Path()
يمكن إنشاء الدلائل. وبالمثل كما في وحدة os
، عند تحديد exist_ok=True
يمكن تجنب الخطأ حتى إذا كان المجلد موجودًا مسبقًا.from pathlib import Path
# تحديد مسار المجلد المراد إنشاؤه
path = Path('example_folder/subfolder')
# إنشاء المجلد
path.mkdir(parents=True, exist_ok=True)
في هذا الكود، عند تحديد parents=True
يتم إنشاء الدليل الأب إذا لم يكن موجودًا. وهذا يحقق سلوكًا مشابهًا لـ os.makedirs()
.مزايا وحدة Pathlib
الميزة الكبيرة لوحدةpathlib
هي إمكانية التعامل بطريقة كائنية التوجه. باستخدام كائن Path
يمكن ليس فقط إنشاء المجلدات، بل أيضًا دمج المسارات وإجراء عمليات على الملفات بشكل بديهي. وهذا يحسن من قابلية قراءة الكود وصيانته.3. معالجة الأخطاء عند إنشاء المجلد
عند إنشاء المجلد، قد تحدث أخطاء متنوعة. على سبيل المثال، عندما تكون الأذونات غير كافية أو يكون المسار المحدد غير صالح. في هذا القسم، سنشرح طريقة تنفيذ معالجة الأخطاء.معالجة أخطاء الأذونات والمسارات غير الصالحة
os.makedirs()
أو pathlib.Path().mkdir()
عند إنشاء المجلد باستخدامهما، الأخطاء العامة التي قد تحدث تشمل PermissionError
وFileNotFoundError
. من خلال معالجة هذه الأخطاء بشكل مناسب، يمكنك إنشاء برنامج أكثر صلابة.
فيما يلي مثال على معالجة الأخطاء.import os
path = 'example_folder/subfolder'
try:
os.makedirs(path, exist_ok=True)
print(f'تم إنشاء المجلد "{path}".')
except PermissionError:
print('ليس لديك صلاحية لإنشاء المجلد.')
except FileNotFoundError:
print('المسار المحدد غير صالح.')
except Exception as e:
print(f'حدث خطأ غير متوقع: {e}')
في هذا الكود، يتم توضيح طرق التعامل مع كل خطأ عام، كما يتم التعامل مع الأخطاء غير المتوقعة. هذا يضمن أن البرنامج لا يتوقف، وأن الأخطاء تُعالج بشكل مناسب.معالجة الأخطاء المتقدمة
في الحالات التي قد يفشل فيها إنشاء المجلد، يجب التفكير في تسجيل تفاصيل الخطأ في السجل أو إبلاغ المستخدم. خاصةً في التطبيقات الكبيرة، فإن معالجة الأخطاء تؤثر بشكل كبير على تجربة المستخدم، لذا يتطلب الأمر استجابة كافية.
4. طريقة حذف المجلد
ليس فقط إنشاء المجلدات، بل غالبًا ما تحتاج إلى حذف المجلدات غير الضرورية. في بايثون، يمكنك حذف المجلدات باستخدام مكتبة المعيارos
أو وحدة shutil
. هنا نشرح الطرق المحددة لذلك.حذف المجلد باستخدام os.rmdir()
تحتوي وحدةos
على دالة تسمى rmdir()
يمكنها حذف المجلد. ومع ذلك، يجب أن يكون المجلد المراد حذفه فارغًا وفقًا لهذا القيد.import os
# تحديد مسار المجلد المراد حذفه
path = 'example_folder/subfolder'
# حذف المجلد
os.rmdir(path)
يعمل هذا الكود بشكل صحيح فقط إذا كان المجلد المحدد فارغًا. إذا كان هناك ملفات أو دلائل أخرى داخل المجلد، سيظهر OSError
.حذف المجلد بشكل متكرر باستخدام shutil.rmtree()
إذا كان هناك ملفات أو مجلدات فرعية داخل المجلد، يمكنك استخدام دالةrmtree()
من وحدة shutil
لحذف المجلد ومحتوياته بشكل متكرر.import shutil
# تحديد مسار المجلد المراد حذفه
path = 'example_folder/subfolder'
# حذف المجلد ومحتوياته
shutil.rmtree(path)
هذه الطريقة مفيدة لأنها تسمح بحذف المجلد حتى إذا لم يكن فارغًا، مما يجعلها مناسبة لحذف شجرة الدلائل بأكملها. ومع ذلك، لا يمكن استعادة الملفات أو المجلدات المحذوفة، لذا يجب التعامل معها بحذر.معالجة الأخطاء
معالجة الأخطاء مهمة أيضًا عند حذف المجلدات. على سبيل المثال، إذا لم تكن لديك صلاحية حذف المجلد أو كان المسار المحدد غير صالح، سيحدث خطأ. فيما يلي مثال على كود يتضمن معالجة الأخطاء.import shutil
path = 'example_folder/subfolder'
try:
shutil.rmtree(path)
print(f'تم حذف المجلد "{path}".')
except PermissionError:
print('ليس لديك صلاحية حذف المجلد.')
except FileNotFoundError:
print('المجلد المحدد غير موجود.')
except Exception as e:
print(f'حدث خطأ غير متوقع: {e}')
يتعامل هذا الكود مع الأخطاء التي قد تحدث أثناء الحذف، ويستجيب بمرونة للأخطاء غير المتوقعة.5. حالات الاستخدام العملية
هنا، سنعرض حالات استخدام عملية تجمع بين إنشاء المجلدات وحذفها، والتي تفيد في المشاريع الفعلية ومعالجة البيانات. خاصةً، نتخيل حالات تنظيم البيانات السنوية أو الشهرية في مجلدات منفصلة.إنشاء مجلدات حسب السنة والشهر
على سبيل المثال، إذا كنت ترغب في تنظيم البيانات حسب السنة أو الشهر، يمكنك إنشاء سكريبت يقوم بإنشاء المجلدات تلقائيًا.import os
from datetime import datetime
# الحصول على السنة والشهر الحاليين
current_year = datetime.now().year
current_month = datetime.now().month
# تعيين مسار المجلد
folder_path = f'data/{current_year}/{current_month}'
# إنشاء المجلد
os.makedirs(folder_path, exist_ok=True)
print(f'المجلد "{folder_path}" تم إنشاؤه.')
هذا السكريبت ينشئ المجلدات تلقائيًا بناءً على السنة والشهر الحاليين، ويساعد في تنظيم البيانات بفعالية.حذف المجلدات دفعة واحدة
يمكنك أيضًا استخدام بايثون لحذف المجلدات غير الضرورية دفعة واحدة بناءً على شروط معينة بكفاءة. على سبيل المثال، يمكن إنشاء سكريبت لحذف مجلدات البيانات القديمة التي مرت عليها فترة زمنية محددة.import shutil
import os
from datetime import datetime, timedelta
# الحصول على تاريخ قبل 30 يومًا
threshold_date = datetime.now() - timedelta(days=30)
# مسار الأساس للمجلدات التي سيتم حذفها
base_path = 'data/'
# فحص المجلدات وحذف المجلدات القديمة
for folder_name in os.listdir(base_path):
folder_path = os.path.join(base_path, folder_name)
if os.path.isdir(folder_path):
folder_date = datetime.strptime(folder_name, '%Y-%m-%d')
if folder_date < threshold_date:
shutil.rmtree(folder_path)
print(f'المجلد القديم "{folder_path}" تم حذفه.')
في مثل هذه الحالات العملية، يمكن أتمتة إدارة وتنظيم المجلدات باستخدام البرنامج، مما يلغي الحاجة إلى التدخل اليدوي.6. الخلاصة
في هذه المقالة، شرحنا طريقة إنشاء وحذف المجلدات باستخدام بايثون. من العمليات الأساسية باستخدامos
وحدة وpathlib
وحدة، إلى معالجة الأخطاء عند إنشاء المجلدات وحالات الاستخدام العملية، قدمنا شرحًا شاملاً. باستخدام هذه المعرفة، يمكنك إنشاء برامج تدير البيانات والملفات بكفاءة. كخطوة تالية، من المفيد تعلم تقنيات إدارة البيانات المتقدمة مثل عمليات الملفات والضغط بالإضافة إلى إنشاء وحذف المجلدات.