التعامل مع الملفات في Python (Files)

10:00 دقائق مجاني
في هذا الدرس ستتعلم كيفية قراءة الملفات وكتابتها في Python واستخدام الملفات لتخزين البيانات

في كثير من البرامج نحتاج حفظ البيانات حتى بعد إغلاق البرنامج. هنا يأتي دور الملفات (Files) التي تسمح لنا بتخزين المعلومات واسترجاعها لاحقًا.

فتح ملف

لفتح ملف نستخدم الدالة open.


file = open("data.txt", "r")

الحرف r يعني القراءة (read).

قراءة محتوى الملف


file = open("data.txt", "r")
content = file.read()
print(content)

الدالة read تقرأ محتوى الملف كاملًا.

إغلاق الملف


file.close()

من المهم إغلاق الملف بعد الانتهاء منه.

الكتابة داخل ملف


file = open("data.txt", "w")
file.write("مرحبا بك في Python")
file.close()

الوضع w يكتب داخل الملف ويستبدل المحتوى القديم.

الإضافة إلى الملف


file = open("data.txt", "a")
file.write("
سطر جديد")
file.close()

الوضع a يضيف محتوى جديد دون حذف القديم.

استخدام with (الأفضل)

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


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

قراءة الملف سطرًا سطرًا


with open("data.txt", "r") as file:
    for line in file:
        print(line)

مفيد للملفات الكبيرة.

أخطاء شائعة

  • نسيان إغلاق الملف
  • فتح ملف غير موجود للقراءة
  • الخلط بين r و w و a

تمرين للتطبيق

أنشئ ملف نصي:

  • اكتب فيه اسمك
  • اكتب فيه عمرك
  • اقرأ المحتوى واطبعه

لماذا نحتاج الملفات أصلًا؟

كل ما خزّنته حتى الآن في المتغيرات يختفي لحظة إغلاق البرنامج، لأنه يعيش في الذاكرة المؤقتة فقط. الملفات هي طريقتك لحفظ البيانات على القرص بشكل دائم، فتجدها كما هي في المرة القادمة. هذا ما يحوّل برنامجك من لعبة عابرة إلى أداة تحفظ نتائج عملك.

الفرق بين الذاكرة والملف كالفرق بين ما تحفظه في رأسك وما تكتبه في دفتر. الأول يضيع بالنوم، والثاني يبقى لتعود إليه. الملفات هي «دفتر» برنامجك.

r و w و a: الفرق الذي يحمي بياناتك

أخطر خطأ مع الملفات هو الخلط بين أوضاع الفتح، وقد يكلّفك مسح بياناتك:

  • r (قراءة): يفتح الملف للقراءة فقط، ولا يغيّر شيئًا.
  • w (كتابة): ينشئ الملف أو يمسح محتواه القديم بالكامل ويكتب الجديد. احذر استخدامه على ملف مهم.
  • a (إضافة): يضيف في نهاية الملف دون حذف ما سبق. هو الأكثر أمانًا للسجلّات.

ولأن نسيان إغلاق الملف مشكلة متكرّرة، يُفضَّل استخدام with الذي يغلق الملف تلقائيًا حتى لو حدث خطأ.

تنبيه من خبرتي: الترميز UTF-8 والنصوص العربية

هنا نصيحة من واقع تجربتي ستوفّر عليك ساعة حيرة محقّقة: حين تتعامل مع ملفات تحتوي نصوصًا عربية، حدّد الترميز UTF-8 صراحةً عند فتح الملف. أكثر ما يربك المبرمج العربي المبتدئ أن يفتح ملفًا فيرى حروفًا مشوّهة غريبة بدل كلماته.

السبب أن النظام أحيانًا يفترض ترميزًا غير مناسب للعربية. الحل ببساطة تمرير encoding="utf-8" عند فتح الملف. تعوّدت على فعل هذا دائمًا مع أي ملف نصي أتعامل معه، حتى صار عادة لا أفكّر فيها. ونصيحتي الثانية: استخدم دائمًا أسلوب with عند فتح الملفات — فهو يغلق الملف تلقائيًا حتى لو حدث خطأ، وهذا ما يفعله كل مبرمج Python محترف بلا استثناء.

ماذا بعد هذا الدرس؟

الدرس القادم: معالجة الأخطاء (Try / Except)

سنتعلم كيف نتعامل مع الأخطاء بدون إيقاف البرنامج.