في هذا الدرس سنتعلم كيفية قراءة وكتابة الملفات النصية باستخدام بايثون.
📥 أولًا: فتح الملفات
✅ الصيغة العامة:
open(filename, mode)
| الوضع (mode) | المعنى |
|---|---|
"r" |
قراءة فقط |
"w" |
كتابة فقط (يحذف المحتوى السابق) |
"a" |
إضافة إلى نهاية الملف |
"x" |
إنشاء ملف جديد |
"b" |
الوضع الثنائي |
"t" |
الوضع النصي (افتراضي) |
📖 قراءة من ملف
مثال:
with open("example.txt", "r") as file:
content = file.read()
print(content)
قراءة سطر بسطر:
with open("example.txt", "r") as file:
for line in file:
print(line.strip())
📝 كتابة إلى ملف
مثال:
with open("output.txt", "w") as file:
file.write("Hello, this is a new file!\n")
file.write("Second line.")
📌 ملاحظة:
- استخدام
withيضمن إغلاق الملف تلقائيًا بعد الانتهاء. - إذا لم يوجد الملف عند القراءة، ستظهر خطأ.
- عند استخدام
"w"، سيتم حذف محتوى الملف إذا كان موجودًا.
✅ تطبيق سريع:
# كتابة
with open("hello.txt", "w") as f:
f.write("مرحبا بك في عالم بايثون!")
# قراءة
with open("hello.txt", "r") as f:
print(f.read())
✅ تمرين: إنشاء ملف وتخزين بيانات طلاب ثم قراءتها
المطلوب:
- أنشئ ملفًا نصيًا باسم
students.txt. - اكتب فيه أسماء بعض الطلاب مع درجاتهم (اسم - درجة).
- اقرأ محتويات الملف وقم بطباعة أسماء الطلاب الذين حصلوا على درجة 90 أو أكثر.
🧠 فكرة التمرين:
تتعلم كيف تكتب إلى ملف باستخدام write() أو writelines()، ثم تقرأ باستخدام readlines() أو read()، ثم تعالج البيانات.
✅ الحل:
# كتابة البيانات في الملف
with open("students.txt", "w") as file:
file.write("Ali 85\n")
file.write("Sara 92\n")
file.write("Omar 78\n")
file.write("Lina 95\n")
file.write("Hassan 88\n")
# قراءة البيانات من الملف ومعالجة الدرجات
print("الطلاب الذين حصلوا على 90 أو أكثر:")
with open("students.txt", "r") as file:
lines = file.readlines()
for line in lines:
name, grade = line.strip().split()
if int(grade) >= 90:
print(f"{name}: {grade}")
✅ ناتج التشغيل المتوقع:
الطلاب الذين حصلوا على 90 أو أكثر:
Sara: 92
Lina: 95
✅ ملاحظات:
- استخدمنا
with open(...)لفتح الملفات بشكل آمن. - استخدمنا
.strip()لإزالة الفراغات و\n. - قسمنا السطر إلى اسم ودرجة باستخدام
.split().

