التعامل مع الملفات (File Handling)

الدرس الخامس كيفية التعامل مع الملفات في بايثون. كيفية قراءة البيانات من الملفات وكتابة البيانات إلى الملفات

تعلم بايثون

February 1, 2025

Python File Handling

الدرس الخامس: التعامل مع الملفات (File Handling)

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

 

1. فتح الملفات

للتعامل مع الملفات في بايثون، نستخدم الدالة open(). هذه الدالة تأخذ مسار الملف وكيفية فتحه (قراءة أم كتابة) كمعلمتين أساسيتين.

 

أ. أوضاع فتح الملف

  • "r" : وضع القراءة (Read). وهو الوضع الافتراضي. إذا لم يكن الملف موجودًا، سيظهر خطأ.
  • "w" : وضع الكتابة (Write). يُنشئ الملف إذا لم يكن موجودًا، وإذا كان موجودًا فإنه يمسح محتوياته.
  • "a" : وضع الإضافة (Append). يُضيف بيانات جديدة إلى نهاية الملف دون حذف المحتوى الحالي.
  • "x" : وضع الإنشاء (Create). يُنشئ الملف فقط إذا لم يكن موجودًا. إذا كان الملف موجودًا، سيظهر خطأ.
# فتح ملف للقراءة
file = open("example.txt", "r")

# فتح ملف للكتابة
file = open("example.txt", "w")

ب. إغلاق الملف

بعد الانتهاء من العمل مع الملف، يجب إغلاقه باستخدام الدالة close().

file = open("example.txt", "r")
# بعض العمليات...
file.close()

ملاحظة: من الأفضل استخدام العبارة with عند التعامل مع الملفات لأنها تضمن إغلاق الملف تلقائيًا حتى إذا حدث خطأ أثناء التنفيذ.

with open("example.txt", "r") as file:
    # بعض العمليات...
    pass  # لا حاجة لإغلاق الملف يدويًا

2. قراءة البيانات من الملفات

أ. قراءة المحتوى بالكامل

يمكنك قراءة محتوى الملف بالكامل باستخدام الدالة read().

with open("example.txt", "r") as file:
    content = file.read()
    print(content)

ب. قراءة السطور واحدة تلو الأخرى

إذا كنت تريد قراءة كل سطر على حدة، يمكنك استخدام الدالة readline() أو التكرار عبر الملف باستخدام حلقة for.

# قراءة السطر الأول فقط
with open("example.txt", "r") as file:
    first_line = file.readline()
    print(first_line)

# قراءة جميع السطور
with open("example.txt", "r") as file:
    for line in file:
        print(line.strip())  # strip() تزيل المسافات البيضاء والخطوط الجديدة

ج. قراءة جميع السطور كقائمة

يمكنك أيضًا قراءة جميع السطور في الملف كقائمة باستخدام الدالة readlines().

with open("example.txt", "r") as file:
    lines = file.readlines()
    print(lines)  # النتيجة: قائمة تحتوي على كل سطر كعنصر

3. كتابة البيانات إلى الملفات

أ. الكتابة إلى ملف جديد

إذا كنت تريد كتابة بيانات جديدة إلى ملف، يمكنك استخدام وضع الكتابة "w".

with open("example.txt", "w") as file:
    file.write("Hello, World!\n")
    file.write("This is a new line.")

ب. إضافة بيانات إلى ملف موجود

إذا كنت تريد إضافة بيانات جديدة إلى نهاية الملف دون حذف المحتوى الحالي، استخدم وضع الإضافة "a".

with open("example.txt", "a") as file:
    file.write("\nThis line was appended.")

4. التعامل مع الملفات الثنائية

إلى جانب الملفات النصية، يمكن أيضًا التعامل مع الملفات الثنائية مثل الصور أو الملفات المضغوطة. يتم ذلك باستخدام الأوضاع "rb" (قراءة الملفات الثنائية) و"wb" (كتابة الملفات الثنائية).

 

أ. قراءة ملف ثنائي

with open("image.jpg", "rb") as file:
    binary_data = file.read()

ب. كتابة ملف ثنائي

with open("new_image.jpg", "wb") as file:
    file.write(binary_data)

5. تطبيقات عملية

تطبيق 1: قراءة وطباعة محتوى ملف نصي

# افتراض أن لدينا ملف باسم example.txt يحتوي على نصوص
with open("example.txt", "r") as file:
    for line in file:
        print(line.strip())

تطبيق 2: إنشاء ملف وكتابة بيانات فيه

# إنشاء ملف جديد وكتابة بعض البيانات
with open("data.txt", "w") as file:
    file.write("Name: Ali\n")
    file.write("Age: 25\n")
    file.write("City: Riyadh\n")

# قراءة الملف بعد كتابته
with open("data.txt", "r") as file:
    print(file.read())

تطبيق 3: إضافة بيانات إلى ملف موجود

# إضافة بيانات جديدة إلى ملف موجود
with open("data.txt", "a") as file:
    file.write("Country: Saudi Arabia\n")

# قراءة الملف بعد الإضافة
with open("data.txt", "r") as file:
    print(file.read())

6. التعامل مع الاستثناءات

عند التعامل مع الملفات، قد تواجه أخطاء مثل عدم وجود الملف أو عدم وجود إذن للوصول إليه. لذلك، من الجيد استخدام الاستثناءات (Exceptions) للتعامل مع هذه الحالات.

try:
    with open("nonexistent_file.txt", "r") as file:
        content = file.read()
except FileNotFoundError:
    print("الملف غير موجود!")
except PermissionError:
    print("لا توجد صلاحية للوصول إلى الملف!")

7. نصائح حول التعامل مع الملفات

  1. استخدام العبارة with:
    دائمًا استخدم with عند التعامل مع الملفات لأنه يضمن إغلاق الملف تلقائيًا.

  2. تجنب الكتابة المتكررة:
    عند الكتابة إلى ملف كبير، حاول تقليل عدد المرات التي تكتب فيها البيانات لتحسين الأداء.

  3. التحقق من وجود الملف:
    قبل محاولة قراءة ملف، تأكد من وجوده باستخدام os.path.exists().

import os

if os.path.exists("example.txt"):
    with open("example.txt", "r") as file:
        print(file.read())
else:
    print("الملف غير موجود!")

الخاتمة

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

 

في الدرس القادم، سنتحدث عن الدوال (Functions) بمزيد من التفصيل وكيفية تنظيم الكود باستخدامها. استمر في الممارسة ولا تتردد في طرح الأسئلة إذا كنت بحاجة إلى مساعدة!

 

🚀 أنت الآن على الطريق الصحيح لتصبح مبرمجًا محترفًا!

التعليقات

  • Web development tutorial A-0

    تعلم برمجة المواقع الاكترونية A-0

    من الصفر إلى الاحتراف: رحلة تطوير الويب الكاملة

    عرض المقال
  • Differences Between Android and iOS

    الاختلافات بين Android وiOS

    برمجة التطبيقات المتنقلة: الاختلافات بين Android وiOS وأفضل الممارسات

    عرض المقال
  • Game Development with Unity

    تطوير الألعاب باستخدام Unity

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

    عرض المقال
  • Mastering Programming with Python

    إتقان البرمجة باستخدام Python

    إتقان البرمجة باستخدام Python: المشاريع العملية والنصائح

    عرض المقال
  • What are the benefits of websites

    ما هي فوائد المواقع الاكترونية

    فوائد المواقع الإلكترونية للشركات

    عرض المقال
  • Web development tutorial A-1

    تعلم برمجة المواقع الاكترونية A-1

    الدرس الأول: تعلم لغة HTML من الصفر - مقدمة شاملة مع إعداد الأدوات

    عرض المقال
  • Web development tutorial A-2

    تعلم برمجة المواقع الاكترونية A-2

    الدرس الثاني: تعلم لغة HTML من الصفر - الوسوم المتقدمة والجداول

    عرض المقال
  • Artificial Intelligence Qwen AI

    الذكاء الاصطناعي Qwen AI

    Qwen AI هو نموذج ذكاء اصطناعي متعدد الوظائف يدعم اللغات ويتولى المهام الإبداعية والتفاعلية

    عرض المقال