التمرين الأول: قراءة الملفات وكتابة البيانات اختر الإجابة الصحيحة بعد تحليل وضع فتح الملف أو تتبع خطوات القراءة والكتابة. أي وضع يضيف سجلات جديدة في نهاية ملف موجود من دون مسح محتواه الحالي؟ شرح السؤال لكل وضع أثر مختلف في المحتوى الموجود قبل فتح الملف. اختر الوضع المرتبط بالإضافة إلى النهاية لا البدء من أول الملف. 'r' 'a' 'w' 'x' الإجابة الصحيحة: 'a'يفتح الوضع 'a' الملف للإلحاق، فتُكتب البيانات الجديدة بعد المحتوى الحالي من دون حذفه.يُستخدم هذا السلوك في ملفات السجل والبيانات التي تنمو بمرور الوقت. أما الوضع 'w' فيبدأ الكتابة بعد إفراغ محتوى الملف الموجود. ما الميزة الأساسية لاستخدام with open(...) as file عند التعامل مع ملف؟ شرح السؤال يحتاج الملف المفتوح إلى تحرير موارده بعد انتهاء العمل. ابحث عن الميزة التي تحدث عند الخروج من كتلة السياق حتى لو وقع خطأ داخلها. تسريع جميع عمليات القراءة مهما كان حجم الملف فتح الملف للقراءة والكتابة معًا تلقائيًا إغلاق الملف تلقائيًا بعد انتهاء الكتلة إنشاء نسخة احتياطية قبل أي تعديل الإجابة الصحيحة: إغلاق الملف تلقائيًا بعد انتهاء الكتلةتدير كتلة with عمر كائن الملف وتغلقه تلقائيًا عند مغادرة الكتلة، حتى إذا حدث استثناء أثناء التنفيذ.تسمى هذه الآلية إدارة السياق، وهي تقلل احتمال نسيان إغلاق الملف أو إبقاء موارد النظام محجوزة بلا حاجة. يحتوي ملف data.csv على السطر user,email,age. ما ناتج المقطع الآتي؟with open("data.csv", "r") as file: line = file.readline() parts = line.strip().split(',') print(parts[1]) شرح السؤال نظّف السطر ثم حوّله إلى قائمة بتقسيمه عند الفواصل. تذكّر أن العنصر الثاني في القائمة يحمل الفهرس واحدًا. user age يظهر IndexError email الإجابة الصحيحة: emailتحول split(',') السطر إلى القائمة ['user', 'email', 'age']، ثم يصل الفهرس 1 إلى العنصر الثاني email. ماذا يحدث إذا كان ملف report.txt موجودًا ويحتوي على بيانات ثم نُفذ المقطع الآتي؟with open("report.txt", "w") as file: file.write("New Report Data") شرح السؤال يرتبط وضع الكتابة ببداية الملف لا بنهايته. حدّد أثر فتح ملف موجود بهذا الوضع قبل تنفيذ دالة الكتابة. يُحذف المحتوى القديم وتُكتب البيانات الجديدة بدلًا منه تُضاف البيانات الجديدة تلقائيًا إلى نهاية المحتوى القديم يظهر خطأ لأن الملف موجود مسبقًا يُنشأ ملف آخر باسم مختلف تلقائيًا الإجابة الصحيحة: يُحذف المحتوى القديم وتُكتب البيانات الجديدة بدلًا منهيفرغ الوضع 'w' الملف الموجود عند فتحه، ثم تكتب write() النص الجديد من البداية.ينبغي اختيار هذا الوضع عندما يكون الاستبدال مقصودًا. أما إذا كانت البيانات القديمة مطلوبة، فيلزم استخدام وضع الإلحاق أو حفظ نسخة منها قبل الكتابة.