Python Tutorials

إتقان عمليات الملفات والمجلدات في بايثون

Spread the love

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

محتويات الجدول

  1. إنشاء مسارات
  2. الحصول على المسار الحالي
  3. قائمة محتويات المسار
  4. تغيير مسار العمل
  5. إعادة تسمية وإزالة المسارات
  6. تقنيات معالجة المسارات
  7. معالجة الأخطاء المتينة

1. إنشاء مسارات

توفر وحدة os دوالًا للتفاعل مع نظام التشغيل. تقوم os.mkdir() بإنشاء مسار واحد، بينما تقوم os.makedirs() بمعالجة إنشاء مسارات متداخلة. تمنع معلمة exist_ok حدوث أخطاء إذا كان المسار موجودًا بالفعل.


import os

# إنشاء مسار واحد
os.mkdir("my_new_directory")

# إنشاء مسارات متداخلة
os.makedirs("nested/directories/example", exist_ok=True) 

print("تم إنشاء المسارات بنجاح!")

2. الحصول على المسار الحالي

استخدم os.getcwd() لاسترداد مسار العمل الحالي.


import os

current_directory = os.getcwd()
print(f"مسار العمل الحالي: {current_directory}")

3. قائمة محتويات المسار

تقوم os.listdir() بقائمة جميع الإدخالات (الملفات والمسارات) ضمن مسار. اجمعها مع os.path.isdir() لتصفية المسارات فقط.


import os

directory_path = "."
all_entries = os.listdir(directory_path)

directories = [entry for entry in all_entries if os.path.isdir(os.path.join(directory_path, entry))]

print("المسارات:")
for directory in directories:
    print(directory)

4. تغيير مسار العمل

يغير os.chdir() مسار العمل الحالي. قم دائمًا بتضمين معالجة الأخطاء (مثل استخدام كتل try-except) لإدارة المشكلات المحتملة مثل المسارات غير الموجودة.


import os

try:
    os.chdir("my_new_directory")
    print(f"تم تغيير مسار العمل الحالي إلى: {os.getcwd()}")
    os.chdir("..") #العودة إلى مستوى مسار أعلى
    print(f"تم تغيير مسار العمل الحالي مرة أخرى إلى: {os.getcwd()}")
except FileNotFoundError:
    print("خطأ: المسار غير موجود.")
except OSError as e:
    print(f"حدث خطأ في نظام التشغيل: {e}")

5. إعادة تسمية وإزالة المسارات

تقوم os.rename() بإعادة تسمية المسارات. تقوم os.rmdir() بإزالة المسارات الفارغة. بالنسبة للمسارات غير الفارغة، استخدم shutil.rmtree() بحذر شديد، حيث إنها تحذف كل شيء بشكل متكرر داخل المسار الهدف. قم دائمًا بنسخ البيانات المهمة احتياطيًا قبل استخدام هذه الوظيفة.


import os
import shutil

# إعادة تسمية مسار
os.rename("my_new_directory", "renamed_directory")

# إزالة مسار فارغ
os.rmdir("empty_directory") # يتطلب مسارًا فارغًا اسمه "empty_directory"

# إزالة مسار غير فارغ (استخدم بحذر شديد!)
shutil.rmtree("non_empty_directory") #يتطلب مسارًا اسمه "non_empty_directory" - هذا سيحذف كل شيء بداخله.

print("تمت عمليات مسار الملفات.")

6. تقنيات معالجة المسارات

توفر وحدة os.path أدوات لمعالجة المسارات الآمنة والمحمولة، وهو أمر بالغ الأهمية لتجنب المشكلات الخاصة بالمنصة.


import os

# دمج المسارات بأمان
path = os.path.join("path", "to", "my", "file.txt")

# الحصول على اسم الملف وامتداده
file_name, file_ext = os.path.splitext(path)

# التحقق مما إذا كان المسار موجودًا
if os.path.exists(path):
    print("المسار موجود")

7. معالجة الأخطاء المتينة

توقع دائمًا الأخطاء المحتملة (مثل FileNotFoundError، PermissionError، OSError) وقم بتنفيذ آليات معالجة الأخطاء المناسبة لجعل كودك قويًا ومنع التعطل غير المتوقع.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *