🎯 أهداف الدرس:
- التعرف على كيفية قراءة وكتابة الملفات النصية باستخدام Python.
- تعلم أوضاع فتح الملفات:
"r"،"w"،"a"،"r+". - فهم كيفية استخدام السياق
withلإدارة الملفات بطريقة آمنة.
📄 قراءة ملف نصي
# إنشاء ملف نصي أولاً
with open("example.txt", "w", encoding="utf-8") as file:
file.write("مرحبًا بك في تعلم بايثون\nهذا سطر جديد")
# قراءة الملف
with open("example.txt", "r", encoding="utf-8") as file:
content = file.read()
print(content)
✨ ملاحظة:
open()يُستخدم لفتح الملف، وwithتغلق الملف تلقائيًا بعد الانتهاء.
📝 كتابة إلى ملف نصي (وضع الكتابة "w")
with open("notes.txt", "w", encoding="utf-8") as file:
file.write("هذا هو أول سطر\n")
file.write("وهذا سطر آخر\n")
⚠️ إذا كان الملف موجودًا، سيتم استبداله بالكامل عند استخدام
"w".
➕ إضافة إلى ملف نصي (وضع الإلحاق "a")
with open("notes.txt", "a", encoding="utf-8") as file:
file.write("سطر جديد تمت إضافته\n")
➕ الوضع
"a"لا يحذف المحتوى السابق، بل يُضيف في نهاية الملف.
📃 قراءة الملف سطرًا بسطر
with open("notes.txt", "r", encoding="utf-8") as file:
for line in file:
print(line.strip())
🔄 القراءة والكتابة معًا (وضع "r+")
with open("data.txt", "r+", encoding="utf-8") as file:
existing = file.read()
file.write("\nتمت إضافة هذا السطر بعد القراءة")
✅ خلاصة الأوضاع:
| الوضع | الوظيفة |
|---|---|
| "r" | قراءة فقط |
| "w" | كتابة واستبدال المحتوى |
| "a" | إضافة في نهاية الملف |
| "r+" | قراءة وكتابة (لا يستبدل كامل الملف) |
📌 ممارسات جيدة:
- استخدم
withدائمًا عند التعامل مع الملفات لتجنب نسيان إغلاقها. - تأكد من استخدام الترميز الصحيح مثل
encoding="utf-8"عند التعامل مع اللغة العربية.
🎯 التمرين: دفتر ملاحظات بسيط
المطلوب:
- أنشئ ملفًا باسم
diary.txtإذا لم يكن موجودًا. - اطلب من المستخدم كتابة ملاحظة (note).
- أضف الملاحظة إلى نهاية الملف.
- بعد ذلك، اطبع جميع الملاحظات الموجودة في الملف.
✅ الحل المقترح:
# 1. استقبال الملاحظة من المستخدم
note = input("اكتب ملاحظتك: ")
# 2. فتح الملف في وضع الإلحاق لإضافة الملاحظة
with open("diary.txt", "a", encoding="utf-8") as file:
file.write(note + "\n")
# 3. قراءة كل الملاحظات من الملف وعرضها
print("\n📓 جميع الملاحظات حتى الآن:\n")
with open("diary.txt", "r", encoding="utf-8") as file:
for line in file:
print("- " + line.strip())
🧠 ملاحظات:
- استخدمنا
"a"لإضافة الملاحظة دون حذف الموجود. - ثم استخدمنا
"r"لقراءة جميع الملاحظات. - يمكنك تشغيل السكريبت أكثر من مرة لإضافة ملاحظات جديدة.

