14.2 الكتابة إلى الملفات
أهداف التعلم
في نهاية هذا القسم، ينبغي أن تكون قادرًا على:
- فهم كيفية فتح ملف للكتابة.
- شرح الأوضاع المختلفة لفتح ملف في Python.
- توضيح استخدام دالّة
write()للكتابة إلى ملف. - فهم أهمية إغلاق الملف.
فتح ملف للكتابة
يمكن فتح الملف للقراءة، مما لا يسمح بإجراء أي تغييرات، أو للكتابة، مما يسمح بإجراء تغييرات في الملف. يحدد الوضع ما إذا كان الملف مفتوحًا للقراءة فقط أو للكتابة. الوضع الافتراضي لدالّة open() هو القراءة فقط. يحدد المُعامِل الثاني في دالّة open() الوضع.
مثال: open("output.txt", 'w') يفتح ملف output.txt في وضع الكتابة. يسرد الجدول التالي الأوضاع الشائعة.
| المُعامِل | اسم الوضع والوصف | مثال |
|---|---|---|
'r' |
وضع القراءة: يفتح الملف المحدد للقراءة. إذا لم يكن الملف موجودًا، يحدث خطأ. عند عدم استخدام مُعامِل للوضع، يكون الافتراضي هو فتح الملف في وضع القراءة. |
|
'w' |
وضع الكتابة: يفتح الملف المحدد للكتابة. إذا لم يكن الملف موجودًا، يُنشأ الملف. إذا كان الملف موجودًا بالفعل، تُستبدل محتوياته. |
|
'a' |
وضع الإلحاق: يفتح الملف المحدد للإلحاق، مما يعني إضافة معلومات إلى نهاية الملف الحالي. إذا لم يكن الملف موجودًا، يُنشأ الملف. |
|
open().
مفاهيم تطبيقية
أوضاع الملفات
افترض أن ملفًا باسم logfile.txt موجود.
استخدام write()
و close()
تُستخدم دالّة write() للكتابة إلى ملف مفتوح بالفعل. تقبل دالّة write() مُعامِلًا نصيًا فقط. يجب تحويل أنواع المُتغيِّرات الأخرى إلى سلسلة نصية قبل الكتابة باستخدام write().
لا تضيف دالّة write() تلقائيًا حرف سطر جديد كما تفعل دالّة print(). يجب إضافة سطر جديد بشكل صريح عن طريق إضافة حرف السطر الجديد ('\n').
تكتب دالّة write() تلقائيًا إلى مخزن مؤقت يسمى مخزن الملف المؤقت. للتأكد من كتابة المعلومات إلى ملف، يجب استخدام دالّة close(). تنهي دالّة close() التغييرات وتغلق الملف.
مثال 14.2
الكتابة والإلحاق بملف
"""Operations for writing and appending to files."""
# إنشاء ملف جديد
opfile = open("output.txt", 'w')
# الكتابة إلى الملف
opfile.write("Writing to a new file.")
# لإضافة سطر آخر يجب استخدام حرف السطر الجديد
opfile.write("\nSecond line.")
# التأكد من حفظ التغييرات بإغلاق الملف
opfile.close()
# قراءة وعرض محتويات الملف
infile = open("output.txt")
print("\nRead the original file:\n")
print(infile.read())
infile.close()
# إعادة فتح الملف في وضع الإلحاق للإضافة إليه
opfile = open("output.txt", 'a')
# لاحظ استخدام أحرف السطر الجديد
opfile.write("\nAdding to the file.")
opfile.write("\nAdding another line.")
# التأكد من حفظ التغييرات بإغلاق الملف
opfile.close()
# قراءة وعرض محتويات الملف المُعدّل
infile = open("output.txt")
print("\nRead the modified file:\n")
print(infile.read())
infile.close()
مخرجات الشِفرة هي:
Read the original file:
Writing to a new file.
Second line.
Read the modified file:
Writing to a new file.
Second line.
Adding to the file.
Adding another line.
مفاهيم تطبيقية
الكتابة إلى الملفات
ملف resources.txt موجود بالفعل. ماذا سيحدث لكل من مقتطفات الشِفرة التالية؟
جرّب بنفسك
الكتابة إلى ملف جديد
اكتب سطرًا نصيًا إلى ملف يسمى out.txt. لا تنسَ استخدام close(). يجب أن يحتوي out.txt فقط على السطر النصي الذي كتبته.
جرّب بنفسك
الكتابة إلى ملف موجود
أضف سطرين نصيين إلى الملف المسمى out.log، بحيث يحتوي out.log على ثلاثة أسطر بعد تنفيذ الشِفرة.
تلميح: لا تنسَ أنك تحتاج إلى حرف سطر جديد.