الفصل 14

الفصل 14

14.1 القراءة من الملفات

1.
c. يتم فتح الملف وربطه بالكائن fileobj. ستكون القراءة من الملف ممكنة باستخدام fileobj.
2.
a. يجب أن يكون الملف موجودًا في نفس المجلد الذي يوجد به ملف Python لكي يتم فتحه.
3.
b. يفسر Python هذا الأمر على أنه محاولة من المبرمج لطباعة تفاصيل الكائن. تتم طباعة تفاصيل الكائن. مثال: <_io.TextIOWrapper name='newfile.txt' mode='r' encoding='cp1252'>.
4.
c. يتم استدعاء الدالّة read() على fileobj. سيتم قراءة محتويات الملف في file_str.
5.
b. يتم استدعاء الدالّة readlines() على fileobj. file_lines هي قائمة السلاسل النصية ['Hello world!\n', 'How are you?\n'].
6.
a. تقرأ الدالّة readline() السطر التالي من الملف. بما أن readline() تُستدعى مباشرة بعد فتح الملف، يتم قراءة السطر الأول. تتم طباعة السلسلة النصية الناتجة "Hello world!" . لاحظ أن readline() تتضمن الحرف '\n'، لذا ستتضمن الطباعة سطرًا جديدًا إضافيًا.

14.2 الكتابة إلى الملفات

1.
a. الوضع الافتراضي للدالّة open() هو القراءة.
2.
c. 'a' يشير إلى وضع الإلحاق الذي يسمح بإضافة محتويات إلى الملف.
3.
b. 'w' يشير إلى وضع الكتابة، وسيتم إنشاء newlog.txt أو الكتابة فوقه (إذا كان newlog.txt موجودًا بالفعل) وسيسمح بالكتابة.
4.
c. من المحتمل أن يكون resources.txt فارغًا، ولكن حالة resources.txt غير مؤكدة. لضمان حفظ المحتويات بشكل صحيح، يجب استخدام الدالّة close().
5.
a. سيقوم وضع الكتابة بالكتابة فوق الملف الموجود. تعليمة close() تنهي التغييرات على الملف.
6.
b. يضيف وضع الإلحاق إلى الملف الموجود. يتم فتح resources.txt بحيث يمكن إجراء إضافات إلى الملف.

14.3 الملفات في مواقع مختلفة والعمل مع ملفات القيم المفصولة بفواصل

1.
b. المسار المتبوع باسم الملف يمكّن من فتح الملف بشكل صحيح وفي وضع القراءة افتراضيًا.
2.
c. يسمح استخدام الشرطات المائلة الأمامية / بدلاً من الشرطات المائلة الخلفية \ القياسية في Windows بقراءة المسار بشكل صحيح. المسار المتبوع باسم الملف يمكّن من فتح الملف، وعند قراءة ملف، يُفضل وضع القراءة.
3.
c. يتم إنشاء الملف أو الكتابة فوقه، ويمكن كتابة التغييرات فيه.
4.
a. بما أن الشرطات المائلة الخلفية في مسار Windows تظهر في وسيط السلسلة النصية، والذي يخبر Python عادةً أن هذا جزء من تسلسل هروب، فيجب تجاهل الشرطات المائلة الخلفية باستخدام حرف شرطة مائلة خلفية \ إضافي.
5.
a. يشير حرف السطر الجديد \n إلى أماكن فواصل الأسطر في الملف، وتستخدمه الدالّة readlines() للتمييز بين الأسطر.
6.
b. تحتوي الخلية في الصف الثاني والعمود الثالث على '268' .
7.
c. يتم قراءة السطر الأول من books.csv في csv_read. السطر الأول هو 'Title, Author, Pages' ، وهو نفس الصف الأول.

14.4 معالجة الاستثناءات

1.
c. السلسلة النصية "3-4" ليست عددًا صحيحًا، لذا تطلق الدالّة int() خطأ ValueError كما كان من قبل.
2.
a. يجب أن ينتهي اسم الملف بـ .txt، وليس .text.
3.
b. إذا لم يكن السطر يحتوي على مسافات، فإن len(parts) سيكون 1 فقط، وسيكون parts[1] خارج النطاق.
4.
b. تطلق الدالّة int() خطأ ValueError عند محاولة تحويل "one" إلى عدد صحيح، لذا يقفز البرنامج إلى بند except.
5.
c. يتعطل البرنامج ويعرض هذا الخطأ لأن بند except لا يعالج ValueError.
6.
b. إذا لم يحدد بند except نوع خطأ معينًا، فسيتم التعامل مع أي نوع من الأخطاء.

14.5 إطلاق الاستثناءات

1.
a. "M" حجم صالح، لذا يتم إنشاء كائن Pizza.
2.
c. PizzaError ليس نوع استثناء مُضمَّنًا.
3.
a. يمكن إطلاق استثناء دون تقديم رسالة خطأ. في هذه الحالة، تكون رسالة الخطأ فارغة، ولكن اسم الاستثناء لا يزال يُطبع.