التعامل مع الملفات (File Handling): قراءة وكتابة الملفات النصية برمجياً


التعامل مع الملفات (File Handling): قراءة وكتابة الملفات النصية برمجياً

مرحباً بكم في هذا الدرس العملي! اليوم سنتعلم كيفية التفاعل برمجياً مع الملفات النصية، قراءة محتواها وكتابة بيانات جديدة إليها باستخدام لغة بايثون.

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

الخطوة 1: الكتابة إلى ملف نصي جديد (Writing to a New Text File)

في هذه الخطوة، سنقوم بإنشاء ملف نصي جديد اسمه my_notes.txt وكتابة سطرين من النص بداخله. نستخدم وضع 'w' لفتح الملف، والذي يعني write (كتابة). إذا كان الملف موجوداً، فسيتم مسح محتواه القديم.

ملاحظة تقنية: استخدام with open(...) as file: هو الممارسة الأفضل في بايثون، فهو يضمن إغلاق الملف تلقائياً حتى لو حدث خطأ، مما يمنع تسرب الموارد.

# فتح الملف في وضع الكتابة ('w')، إذا لم يكن موجوداً سيتم إنشاؤه
# إذا كان موجوداً، سيتم مسح محتواه الحالي
with open('my_notes.txt', 'w', encoding='utf-8') as file:
    file.write('هذا هو السطر الأول من الملاحظات.\n') # كتابة السطر الأول وإضافة سطر جديد
    file.write('البرمجة ممتعة ومفيدة جداً.\n') # كتابة السطر الثاني
    file.write('نحن نتعلم التعامل مع الملفات الآن.\n') # كتابة السطر الثالث

print('تمت الكتابة إلى الملف my_notes.txt بنجاح.')

الخطوة 2: قراءة محتوى ملف نصي (Reading from a Text File)

بعد أن كتبنا في الملف، حان الوقت لقراءة محتواه. سنقوم بفتح الملف في وضع القراءة 'r' (read) ثم نستخدم الدالة read() لقراءة كل المحتوى وعرضه.

# فتح الملف في وضع القراءة ('r')
with open('my_notes.txt', 'r', encoding='utf-8') as file:
    content = file.read() # قراءة كل محتوى الملف وتخزينه في متغير
    print('\nمحتوى الملف my_notes.txt:')
    print(content)

الخطوة 3: إضافة محتوى إلى ملف نصي موجود (Appending to an Existing Text File)

في بعض الأحيان، لا نرغب في مسح محتوى الملف القديم بل نريد فقط إضافة محتوى جديد في نهايته. لهذا نستخدم وضع 'a' (append). سنضيف سطراً جديداً إلى ملفنا ثم نعيد قراءته للتأكد من الإضافة.

# فتح الملف في وضع الإضافة ('a')، سيتم إضافة المحتوى في نهاية الملف
with open('my_notes.txt', 'a', encoding='utf-8') as file:
    file.write('هذا سطر إضافي تم إلحاقه.\n') # إضافة سطر جديد إلى نهاية الملف

print('\nتمت إضافة سطر جديد إلى الملف.')

# إعادة قراءة الملف للتأكد من الإضافة
with open('my_notes.txt', 'r', encoding='utf-8') as file:
    updated_content = file.read()
    print('\nمحتوى الملف my_notes.txt بعد الإضافة:')
    print(updated_content)

الكود النهائي الكامل

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

# -*- coding: utf-8 -*-

# 1. الكتابة إلى ملف نصي جديد (أو مسح الموجود وكتابة جديد)
print('بدء عملية الكتابة إلى الملف...')
with open('my_notes.txt', 'w', encoding='utf-8') as file:
    file.write('هذا هو السطر الأول من الملاحظات.\n')
    file.write('البرمجة ممتعة ومفيدة جداً.\n')
    file.write('نحن نتعلم التعامل مع الملفات الآن.\n')
print('تمت الكتابة الأولية إلى الملف my_notes.txt بنجاح.')

# 2. قراءة محتوى الملف
print('\nبدء عملية قراءة الملف...')
with open('my_notes.txt', 'r', encoding='utf-8') as file:
    content = file.read()
    print('\nمحتوى الملف my_notes.txt:')
    print(content)
print('تمت قراءة الملف بنجاح.')

# 3. إضافة محتوى إلى الملف الموجود
print('\nبدء عملية إضافة محتوى جديد إلى الملف...')
with open('my_notes.txt', 'a', encoding='utf-8') as file:
    file.write('هذا سطر إضافي تم إلحاقه.\n')
    file.write('أتمنى أن يكون الدرس مفيداً!\n')
print('تمت إضافة سطرين جديدين بنجاح.')

# 4. إعادة قراءة الملف للتأكد من الإضافة
print('\nبدء عملية إعادة قراءة الملف بعد الإضافة...')
with open('my_notes.txt', 'r', encoding='utf-8') as file:
    updated_content = file.read()
    print('\nمحتوى الملف my_notes.txt بعد الإضافة:')
    print(updated_content)
print('تمت إعادة قراءة الملف بنجاح.')

print('\nانتهى الدرس. شكراً لكم!')

النتيجة المتوقعة

عند تشغيل السكربت أعلاه، سيقوم البرنامج بالآتي:

  1. إنشاء ملف باسم my_notes.txt (أو مسح محتواه إذا كان موجوداً) وكتابة ثلاثة أسطر بداخله.
  2. طباعة رسالة تأكيد على الشاشة: تمت الكتابة الأولية إلى الملف my_notes.txt بنجاح.
  3. قراءة محتوى الملف وعرضه على الشاشة، والذي سيحتوي على الأسطر الثلاثة الأولى.
  4. طباعة رسالة تأكيد على الشاشة: تمت قراءة الملف بنجاح.
  5. إضافة سطرين جديدين إلى نهاية الملف my_notes.txt.
  6. طباعة رسالة تأكيد على الشاشة: تمت إضافة سطرين جديدين بنجاح.
  7. إعادة قراءة محتوى الملف بالكامل (الآن سيحتوي على 5 أسطر) وعرضه على الشاشة.
  8. طباعة رسالة ختامية: انتهى الدرس. شكراً لكم!

الملف my_notes.txt سيحتوي في النهاية على:

هذا هو السطر الأول من الملاحظات.
البرمجة ممتعة ومفيدة جداً.
نحن نتعلم التعامل مع الملفات الآن.
هذا سطر إضافي تم إلحاقه.
أتمنى أن يكون الدرس مفيداً!