معالجة الملفات
التعامل مع الملفات أو معالجة الملفات ( Files Handling ) يقصد منها إجراء عملية ما على الملفات على مختلف انواعها ( مثل txt - jpg - mp4 ).
في هذا الدرس ستتعلم كيف تقرأ محتوى ملف, كيف تنشئ نسخة منه, كيف تعدل محتواه, كيف تحذفه إلخ..
التعامل مع الملفات أو معالجة الملفات ( Files Handling ) يقصد منها إجراء عملية ما على الملفات على مختلف انواعها ( مثل txt - jpg - mp4 ).
في هذا الدرس ستتعلم كيف تقرأ محتوى ملف, كيف تنشئ نسخة منه, كيف تعدل محتواه, كيف تحذفه إلخ..
الدالة
هذه الدالة هي من الدوال الجاهزة في بايثون و هي تستخدم لإنشاء ملف جديد أو لفتح الملف الذي سيتم التعامل معه.
في حال تم إنشاء الملف بشكل صحيح أو تم فتح الملف بشكل صحيح ترجع كائن
يتيح لك التعامل معه.
في حال لم تستطع إنشاء الملف أو الوصول إليه ترمي إستثناء.
هذه الدالة هي من الدوال الجاهزة في بايثون و هي تستخدم لإنشاء ملف جديد أو لفتح الملف الذي سيتم التعامل معه.
في حال تم إنشاء الملف بشكل صحيح أو تم فتح الملف بشكل صحيح ترجع كائن
في حال لم تستطع إنشاء الملف أو الوصول إليه ترمي إستثناء.
بناؤها
- مكان البارميتر
نمرر نص يمثل إسم الملف الذي سيتم إنشاؤه أو التعامل معه.- ( أو أكثر ) يمثل كيف سنتعامل مع الملف, مثل: هل تنوي القراءة منه أو الكتابة فيها إلخ..
هو باراميتر إختياري, نمرر مكانه حرف هو باراميتر إختياري, يمكنك أن تمرر مكانه رقم يحدد كيف سيتم تخزين الأحرف بشكل مؤقت في الذاكرة أثناء الكتابة أو القراءة من الملف. هو باراميتر إختياري, يمكنك أن تمرر مكانه إسم الترميز الذي يجب استخدامه عند التعامل مع الملف. هو باراميتر إختياري, يمكنك أن تمرر مكانه كلمة لتحدد كيف سيتم التعامل مع الأخطاء التي قد تحدث عند التعامل مع الملف. هو باراميتر إختياري, يمكنك أن تمرر مكانه الرمز الذي يمثل نهاية كل سطر في الملف و الذي يجعل النص الذي يوضع بعده ينزل على سطر جديد.
أهم باراميتر إختياري في هذه الدالة هو الباراميتر
لأنه كما سبق و قلنا أن الحرف الذي نمرره مكانه يحدد الهدف من فتح الملف.
في الجدول التالي وضعنا كل الحروف التي يمكن تمريرها مكان هذا الباراميتر.الحرف معناه مثال يعتبر إختصار للكلمة Read, و هو يستخدم لفتح الملف من أجل القراءة منه.
كما أنه الـ Mode الإفتراضي للملف الذي تفتحه. شاهد المثال » يعتبر إختصار للكلمة Write, و هو يستخدم لفتح الملف من أجل الكتابة فيه.
و في حال لم يكن الملف المراد الكتابة فيه موجوداً أصلاً, سيتم إنشاؤه.
ملاحظة: هذا الحرف يقوم بحذف النص الذي كان موجوداً في الملف في حال لم يكن فارغاَ. شاهد المثال » يعتبر إختصار للكلمة Append, و هو يستخدم لفتح الملف من أجل الكتابة في آخره. أي لإضافة نص جديد على النص الموجود في الملف.
و في حال لم يكن الملف المراد الكتابة فيه موجوداً أصلاً, سيتم إنشاؤه. شاهد المثال » يعتبر إختصار للكلمة Create, و هو يستخدم لإنشاء ملف جديد فقط في حال لم يكن موجوداً. شاهد المثال » يعتبر إختصار للكلمة Text, و هو يستخدم لتحديد أن محتوى الملف عبارة عن نص عادي.
كما أنه الـ Mode الإفتراضي للملف الذي تفتحه. شاهد المثال » يعتبر إختصار للكلمة Binary, و هو يستخدم لتحديد أن محتوى الملف عبارة عن Binary, أي أحرف لا يمكن أن يفهمها الإنسان العادي.
هذا الـ Mode نستخدمه عند التعامل مع الملفات الغير نصية مثل الصور, الفيدوهات, التسجيلات الصوتية إلخ..
ملاحظة: المثال سيعلمك طريقة إنشاء نسخة من أي ملف. شاهد المثال » يعتبر إختصار للكلمتين Read & Write, و هو يستخدم لفتح الملف مع إمكانية القراءة منه و الكتابة فيه في نفس الوقت. شاهد المثال »
- مكان البارميتر نمرر نص يمثل إسم الملف الذي سيتم إنشاؤه أو التعامل معه.
- ( أو أكثر ) يمثل كيف سنتعامل مع الملف, مثل: هل تنوي القراءة منه أو الكتابة فيها إلخ.. هو باراميتر إختياري, نمرر مكانه حرف
- هو باراميتر إختياري, يمكنك أن تمرر مكانه رقم يحدد كيف سيتم تخزين الأحرف بشكل مؤقت في الذاكرة أثناء الكتابة أو القراءة من الملف.
- هو باراميتر إختياري, يمكنك أن تمرر مكانه إسم الترميز الذي يجب استخدامه عند التعامل مع الملف.
- هو باراميتر إختياري, يمكنك أن تمرر مكانه كلمة لتحدد كيف سيتم التعامل مع الأخطاء التي قد تحدث عند التعامل مع الملف.
- هو باراميتر إختياري, يمكنك أن تمرر مكانه الرمز الذي يمثل نهاية كل سطر في الملف و الذي يجعل النص الذي يوضع بعده ينزل على سطر جديد.
أهم باراميتر إختياري في هذه الدالة هو الباراميتر
لأنه كما سبق و قلنا أن الحرف الذي نمرره مكانه يحدد الهدف من فتح الملف.في الجدول التالي وضعنا كل الحروف التي يمكن تمريرها مكان هذا الباراميتر.
الحرف | معناه | مثال |
---|---|---|
يعتبر إختصار للكلمة Read, و هو يستخدم لفتح الملف من أجل القراءة منه. كما أنه الـ Mode الإفتراضي للملف الذي تفتحه. | شاهد المثال » | |
يعتبر إختصار للكلمة Write, و هو يستخدم لفتح الملف من أجل الكتابة فيه. و في حال لم يكن الملف المراد الكتابة فيه موجوداً أصلاً, سيتم إنشاؤه. ملاحظة: هذا الحرف يقوم بحذف النص الذي كان موجوداً في الملف في حال لم يكن فارغاَ. | شاهد المثال » | |
يعتبر إختصار للكلمة Append, و هو يستخدم لفتح الملف من أجل الكتابة في آخره. أي لإضافة نص جديد على النص الموجود في الملف. و في حال لم يكن الملف المراد الكتابة فيه موجوداً أصلاً, سيتم إنشاؤه. | شاهد المثال » | |
يعتبر إختصار للكلمة Create, و هو يستخدم لإنشاء ملف جديد فقط في حال لم يكن موجوداً. | شاهد المثال » | |
يعتبر إختصار للكلمة Text, و هو يستخدم لتحديد أن محتوى الملف عبارة عن نص عادي. كما أنه الـ Mode الإفتراضي للملف الذي تفتحه. | شاهد المثال » | |
يعتبر إختصار للكلمة Binary, و هو يستخدم لتحديد أن محتوى الملف عبارة عن Binary, أي أحرف لا يمكن أن يفهمها الإنسان العادي. هذا الـ Mode نستخدمه عند التعامل مع الملفات الغير نصية مثل الصور, الفيدوهات, التسجيلات الصوتية إلخ.. ملاحظة: المثال سيعلمك طريقة إنشاء نسخة من أي ملف. | شاهد المثال » | |
يعتبر إختصار للكلمتين Read & Write, و هو يستخدم لفتح الملف مع إمكانية القراءة منه و الكتابة فيه في نفس الوقت. | شاهد المثال » |
ملاحظة
الأحرف المذكورة في الجدول يمكن دمجها مع بعضها, أي يمكنك تحديد أكثر من Mode في وقت واحد.
فمثلاً يمكنك كتابة
من أجل فتح ملف جديد و وضع فيه نص نوعه Binary كما نفعل في حال أردنا نسخ صورة على سبيل المثال.
في المثال التالي قمنا بإنشاء ملف نصي جديد إسمه
في نفس المشروع الذي نعمل فيه.
بعدها قمنا كتابة السطر التالي بداخله .
الأحرف المذكورة في الجدول يمكن دمجها مع بعضها, أي يمكنك تحديد أكثر من Mode في وقت واحد.
فمثلاً يمكنك كتابة
في المثال التالي قمنا بإنشاء ملف نصي جديد إسمه
في نفس المشروع الذي نعمل فيه.بعدها قمنا كتابة السطر التالي بداخله .
مثال
بعد تشغيل الملف
سيتم إنشاء ملف إسمه في نفس المشروع الذي نعمل فيه و بداخله النص التالي.
بعد تشغيل الملف
سيتم إنشاء ملف إسمه في نفس المشروع الذي نعمل فيه و بداخله النص التالي.دوال القراءة و الكتابة في الملفات
بعد فتح الملف الذي تريد التعامل معه بنجاح بواسطة الدالة
يصبح بإمكانك استخدام الدوال التالية من الكائن الذي سترجعه هذه الدالة.إسم الدالة مع تعريفها 1 تستخدم للكتابة في الكائن الذي يمثل الملف المفتوح الذي قام باستدعائها.
مكان الباراميتر نمرر النص الذي نريد أن يتم كتابته في الملف.
شاهد المثال » 2 تستخدم لكتابة مجموعة نصوص مخزنة في في الكائن الذي يمثل الملف المفتوح الذي قام باستدعائها.
مكان الباراميتر نمرر كائن فيه مجموعة النصوص التي نريد أن يتم كتابتها بنفس الترتيب في الملف.
شاهد المثال » 3 تستخدم للقراءة من الكائن الذي يمثل الملف المفتوح الذي قام باستدعائها.
إذا قمت باستدعائها و لم تمرر لها أي رقم, سترجع كل النص الموجود في الملف دفعة واحد.
هو باراميتر إختياري يمكنك أن تمرر مكانه رقم يمثل عدد الأحرف التي تريد قراءتها من الملف في حال لم ترد أن تقرأ كل محتوى الملف دفعة واحدة. مع الإشارة إلى أنك في كل مرة تقوم فيها باستدعائها ستعطيك الأحرف التالية الموجودة في الملف.
شاهد المثال » 4 تستخدم للقراءة سطراً سطراً من الكائن الذي يمثل الملف المفتوح الذي قام باستدعائها.
إذا قمت باستدعائها و لم تمرر لها أي رقم, سترجع السطر التالي الموجود في الملف.
هو باراميتر إختياري يمكنك أن تمرر مكانه رقم يمثل عدد الأحرف التي تريد قراءتها من السطر التالي في الملف في حال لم ترد أن تقرأ كل محتوى السطر دفعة واحدة. مع الإشارة إلى أنك في كل مرة تقوم فيها باستدعائها ستعطيك الأحرف الموجودة حتى نهاية السطر الحالي في الملف.
شاهد المثال » 5 تستخدم لإرجاع نسخة من النص الموجود في الكائن الذي يمثل الملف المفتوح الذي قام باستدعائها ككائن .
كل عنصر في كائن الـ الذي ترجعه يمثل سطر موجود في الملف.
إذا قمت باستدعائها و لم تمرر لها أي رقم, سيتم وضع كل الأحرف الموجودة على كل سطر في الملف في عنصر من عناصر الكائن الـ .
هو باراميتر إختياري يمكنك أن تمرر مكانه رقم يمثل عدد الأحرف التي تريد قراءتها من كل سطر في الملف في حال لم ترد أن تقرأ كل محتوى السطر.
شاهد المثال » 6 ترجع رقم آخر حرف في الملف تم الوصول إليه أثناء القراءة من الملف عن طريق الكائن الذي يمثل هذا الملف.
شاهد المثال » 7 أثناء القراءة من الملف عن طريق الكائن الذي يمثل هذا الملف, يمكنك إستخدام هذه الدالة في حال أردت الرجوع إلى الوراء في الملف لقراءة الملف من جديد على سبيل المثال.
هو باراميتر إختياري يمكنك أن تمرر إحدى الأرقام التالية مكانه:
- الرقم 0 إذا أردت الرجوع إلى أول حرف في الملف.
- الرقم 1 إذا أردت البقاء عند حرف الحالي الذي وصلت إليه في الملف.
- الرقم 2 إذا أردت الذهاب إلى آخر حرف في الملف.
مكان الباراميتر تمرر رقم يمثل بعد كم حرف نسبة للبراميتر تريد أن تبدأ.
مثال: إذا قمت باستدعاء الدالة هكذا أو هكذا فهذا يعني أنك تريد العودة إلى أول حرف في الملف.
شاهد المثال » 8 تستخدم لإغلاق الإتصال مع الملف و تنظيف الذاكرة من كل ما له علاقة بهذا الملف.
ملاحظة: في حال قمت بفتح الملف بالأساس بواسطة الجملة فلا داعي لإغلاق الملف لأنها تقوم بإغلاقه بشكل تلقائي عنك.
شاهد المثال »
بعد فتح الملف الذي تريد التعامل معه بنجاح بواسطة الدالة
يصبح بإمكانك استخدام الدوال التالية من الكائن الذي سترجعه هذه الدالة.إسم الدالة مع تعريفها | |
---|---|
1 | تستخدم للكتابة في الكائن الذي يمثل الملف المفتوح الذي قام باستدعائها. مكان الباراميتر نمرر النص الذي نريد أن يتم كتابته في الملف. شاهد المثال » |
2 | تستخدم لكتابة مجموعة نصوص مخزنة في في الكائن الذي يمثل الملف المفتوح الذي قام باستدعائها. مكان الباراميتر نمرر كائن فيه مجموعة النصوص التي نريد أن يتم كتابتها بنفس الترتيب في الملف. شاهد المثال » |
3 | تستخدم للقراءة من الكائن الذي يمثل الملف المفتوح الذي قام باستدعائها. إذا قمت باستدعائها و لم تمرر لها أي رقم, سترجع كل النص الموجود في الملف دفعة واحد. هو باراميتر إختياري يمكنك أن تمرر مكانه رقم يمثل عدد الأحرف التي تريد قراءتها من الملف في حال لم ترد أن تقرأ كل محتوى الملف دفعة واحدة. مع الإشارة إلى أنك في كل مرة تقوم فيها باستدعائها ستعطيك الأحرف التالية الموجودة في الملف. شاهد المثال » |
4 | تستخدم للقراءة سطراً سطراً من الكائن الذي يمثل الملف المفتوح الذي قام باستدعائها. إذا قمت باستدعائها و لم تمرر لها أي رقم, سترجع السطر التالي الموجود في الملف. هو باراميتر إختياري يمكنك أن تمرر مكانه رقم يمثل عدد الأحرف التي تريد قراءتها من السطر التالي في الملف في حال لم ترد أن تقرأ كل محتوى السطر دفعة واحدة. مع الإشارة إلى أنك في كل مرة تقوم فيها باستدعائها ستعطيك الأحرف الموجودة حتى نهاية السطر الحالي في الملف. شاهد المثال » |
5 | تستخدم لإرجاع نسخة من النص الموجود في الكائن الذي يمثل الملف المفتوح الذي قام باستدعائها ككائن . كل عنصر في كائن الـ الذي ترجعه يمثل سطر موجود في الملف. إذا قمت باستدعائها و لم تمرر لها أي رقم, سيتم وضع كل الأحرف الموجودة على كل سطر في الملف في عنصر من عناصر الكائن الـ . هو باراميتر إختياري يمكنك أن تمرر مكانه رقم يمثل عدد الأحرف التي تريد قراءتها من كل سطر في الملف في حال لم ترد أن تقرأ كل محتوى السطر. شاهد المثال » |
6 | ترجع رقم آخر حرف في الملف تم الوصول إليه أثناء القراءة من الملف عن طريق الكائن الذي يمثل هذا الملف. شاهد المثال » |
7 | أثناء القراءة من الملف عن طريق الكائن الذي يمثل هذا الملف, يمكنك إستخدام هذه الدالة في حال أردت الرجوع إلى الوراء في الملف لقراءة الملف من جديد على سبيل المثال. هو باراميتر إختياري يمكنك أن تمرر إحدى الأرقام التالية مكانه:
مثال: إذا قمت باستدعاء الدالة هكذا أو هكذا فهذا يعني أنك تريد العودة إلى أول حرف في الملف. شاهد المثال » |
8 | تستخدم لإغلاق الإتصال مع الملف و تنظيف الذاكرة من كل ما له علاقة بهذا الملف. ملاحظة: في حال قمت بفتح الملف بالأساس بواسطة الجملة فلا داعي لإغلاق الملف لأنها تقوم بإغلاقه بشكل تلقائي عنك. شاهد المثال » |
خصائص الملفات
بالإضافة إلى الدوال السابقة, يصبح بإمكانك الإستفادة من الخصائص التالية من الكائن الذي ترجعه الدالة
.إسم الخاصية مع تعريفها 1 ترجع إسم الملف الذي يمثله الكائن. 2 ترجع الحرف أو الأحرف المستخدمة لتحديد الهدف من فتح الملف. 3 ترجع إسم الترميز المستخدم في الملف الذي يمثله الكائن. 4 تستخدم لمعرفة ما إذا كان الكائن الذي يمثل الملف لا يزال مفتوح أم تم إغلاقه.
ترجع إن كان كذلك, إن لم يكن كذلك ترجع .
في المثال التالي قمنا بإنشاء كائن يشير للملف
الذي أنشأناه سابقاً.
بعدها قمنا بعرض خصائص هذا الكائن و التي بدورها تعتبر خصائص الملف نفسه.
بالإضافة إلى الدوال السابقة, يصبح بإمكانك الإستفادة من الخصائص التالية من الكائن الذي ترجعه الدالة
.إسم الخاصية مع تعريفها | |
---|---|
1 | ترجع إسم الملف الذي يمثله الكائن. |
2 | ترجع الحرف أو الأحرف المستخدمة لتحديد الهدف من فتح الملف. |
3 | ترجع إسم الترميز المستخدم في الملف الذي يمثله الكائن. |
4 | تستخدم لمعرفة ما إذا كان الكائن الذي يمثل الملف لا يزال مفتوح أم تم إغلاقه. ترجع إن كان كذلك, إن لم يكن كذلك ترجع . |
في المثال التالي قمنا بإنشاء كائن يشير للملف
الذي أنشأناه سابقاً.بعدها قمنا بعرض خصائص هذا الكائن و التي بدورها تعتبر خصائص الملف نفسه.
مثال
سنحصل على النتيجة التالية عند تشغيل الملف
.
سنحصل على النتيجة التالية عند تشغيل الملف
.الموديول
لإستخدام هذا الموديول يجب تضمينه كالتالي.
الجدول التالي يحتوي على دوال الموديول
الأكثر استخداماً.إسم الدالة مع تعريفها 1 تستخدم لتغيير إسم الملف.
مكان الباراميتر نمرر إسم الملف الذي نريد تغيير إسمه.
مكان الباراميتر نمرر الإسم الجديد الذي نريد وضعه للملف.
شاهد المثال » 2 تستخدم لمسح الملف.
مكان الباراميتر نمرر إسم الملف الذي نريد حذفه.
شاهد المثال » 3 تستخدم لمعرفة ما إن كان الملف موجوداً أم لا.
مكان الباراميتر نمرر إسم الملف الذي نريد التأكد ما إن كان موجوداً أم لا.
ترجع إذا كان الملف موجوداً. و ترجع إن لم يكن كذلك.
شاهد المثال » 4 تستخدم لإنشاء مجلد جديد.
مكان الباراميتر نمرر إسم المجلد الذي نريد إنشاؤه.
معلومة: إسم الدالة هو إختصار لجملة Make Directory.
شاهد المثال » 5 تستخدم لمسح المجلد.
مكان الباراميتر نمرر إسم المجلد الذي نريد حذفه.
ملاحظة: يمكنك حذف المجلد في حال كان فارغاً فقط, أي في حال لم يكن يحتوي على أي ملف بداخله.
معلومة: إسم الدالة هو إختصار لجملة Remove Directory.
شاهد المثال » 6 تستخدم لمعرفة إسم المجلد الذي تقف بداخله حالياً.
معلومة: إسم الدالة هو إختصار لجملة Get Current Working Directory.
شاهد المثال »
هو موديول جاهز في بايثون يتيح لك إعادة تسمية الملفات, مسح الملفات, إنشاء مجلدات, مسح مجلدات, التنقل بين المجلدات إلخ..
لإستخدام هذا الموديول يجب تضمينه كالتالي.
الجدول التالي يحتوي على دوال الموديول
الأكثر استخداماً.إسم الدالة مع تعريفها | |
---|---|
1 | تستخدم لتغيير إسم الملف. مكان الباراميتر نمرر إسم الملف الذي نريد تغيير إسمه. مكان الباراميتر نمرر الإسم الجديد الذي نريد وضعه للملف. شاهد المثال » |
2 | تستخدم لمسح الملف. مكان الباراميتر نمرر إسم الملف الذي نريد حذفه. شاهد المثال » |
3 | تستخدم لمعرفة ما إن كان الملف موجوداً أم لا. مكان الباراميتر نمرر إسم الملف الذي نريد التأكد ما إن كان موجوداً أم لا. ترجع إذا كان الملف موجوداً. و ترجع إن لم يكن كذلك. شاهد المثال » |
4 | تستخدم لإنشاء مجلد جديد. مكان الباراميتر نمرر إسم المجلد الذي نريد إنشاؤه. معلومة: إسم الدالة هو إختصار لجملة Make Directory. شاهد المثال » |
5 | تستخدم لمسح المجلد. مكان الباراميتر نمرر إسم المجلد الذي نريد حذفه. ملاحظة: يمكنك حذف المجلد في حال كان فارغاً فقط, أي في حال لم يكن يحتوي على أي ملف بداخله. معلومة: إسم الدالة هو إختصار لجملة Remove Directory. شاهد المثال » |
6 | تستخدم لمعرفة إسم المجلد الذي تقف بداخله حالياً. معلومة: إسم الدالة هو إختصار لجملة Get Current Working Directory. شاهد المثال » |
البلوك
يمكنك الإستفادة من إستخدام أسلوب البلوك
في حال أردت أن يتم إغلاق الملفات التي تفتحها في برامجك بشكل تلقائي و بدون الحاجة لإستدعاء الدالة .
طريقة تعريف البلوك
:
- نضع مكانه الأمر الذي سيرجع لنا كائن يشير الملف الذي تم فتحه في الذاكرة. :
- نضع مكانه إسم الكائن الذي نريد من خلاله أن نتعامل مع الملف الذي تم فتحه في الذاكرة. :
- مكان هذا التعليق نضع الأوامر التي نريد تنفيذها بعد أن تم فتح الملف بنجاح. :
في المثال التالي قمنا بفتح ملف و قراءة النص الموجود فيه بدون الحاجة لإغلاقه عند الإنتهاء منه لأننا وضعنا الكود بداخل بلوك الكلمة
.
يمكنك الإستفادة من إستخدام أسلوب البلوك
في حال أردت أن يتم إغلاق الملفات التي تفتحها في برامجك بشكل تلقائي و بدون الحاجة لإستدعاء الدالة .طريقة تعريف البلوك
:- نضع مكانه الأمر الذي سيرجع لنا كائن يشير الملف الذي تم فتحه في الذاكرة. :
- نضع مكانه إسم الكائن الذي نريد من خلاله أن نتعامل مع الملف الذي تم فتحه في الذاكرة. :
- مكان هذا التعليق نضع الأوامر التي نريد تنفيذها بعد أن تم فتح الملف بنجاح. :
في المثال التالي قمنا بفتح ملف و قراءة النص الموجود فيه بدون الحاجة لإغلاقه عند الإنتهاء منه لأننا وضعنا الكود بداخل بلوك الكلمة
.مثال
بعد تشغيل الملف
سيتم طباعة كل النص الموجود في الملف الذي إفترضنا أننا أنشأناه سابقاً في نفس المشروع الذي نعمل فيه.
نلاحظ أن الدالة
أرجعت القيمة و هذا يعني أنه تم إغلاق الملف من الذاكرة بشكل تلقائي عند إنتهاء البلوك .
بعد تشغيل الملف
سيتم طباعة كل النص الموجود في الملف الذي إفترضنا أننا أنشأناه سابقاً في نفس المشروع الذي نعمل فيه.نلاحظ أن الدالة
أرجعت القيمة و هذا يعني أنه تم إغلاق الملف من الذاكرة بشكل تلقائي عند إنتهاء البلوك .تخزين أحرف عربية في الملف
إذا حاولت كتابة أحرف عربية في ملف و لم تحدد أن نوع الترميز المستخدم عند التعامل مع الملف هو utf-8 سيظهر أمامك الخطأ 'charmap' codec can't encode.
و إذا حاولت قراءة نص عربي موجود في ملف و لم تحدد نوع الترميز ستلاحظ أن النص يظهر بشكل غير مفهوم كالتالي
.
في المثال التالي قمنا بإنشاء ملف إسمه
قمنا بتخزين نص عربي فيه و بعدها قمنا بقراءة النص الموجود فيه.
إذا حاولت كتابة أحرف عربية في ملف و لم تحدد أن نوع الترميز المستخدم عند التعامل مع الملف هو utf-8 سيظهر أمامك الخطأ 'charmap' codec can't encode.
و إذا حاولت قراءة نص عربي موجود في ملف و لم تحدد نوع الترميز ستلاحظ أن النص يظهر بشكل غير مفهوم كالتالي
في المثال التالي قمنا بإنشاء ملف إسمه
قمنا بتخزين نص عربي فيه و بعدها قمنا بقراءة النص الموجود فيه.مثال
بعد تشغيل الملف
سيتم إنشاء الملف و تخزين النص العربي بداخله. أيضاً سيتم طباعة النص العربي الموجود في الأساس بداخل الملف كالتالي.
بعد تشغيل الملف
سيتم إنشاء الملف و تخزين النص العربي بداخله. أيضاً سيتم طباعة النص العربي الموجود في الأساس بداخل الملف كالتالي.التعامل مع الملفات بطريقة آمنة
عند التعامل مع الملفات قد تواجهك عدة مشاكل قد يكون سببها نظام التشغيل أو المستخدم.
لذلك عليك دائماً حماية الكود الذي من خلاله ستتعامل مع الملفات بالجمل
التي شرحناها سابقاً.
بعض المشاكل التي قد تحدث معك أثناء التعامل مع الملفات:
- إذا كان مسار الملف الذي تريد التعامل معه مذكور بشكل غير صحيح.
- إذا كنت تحاول قراءة محتوى ملف غير موجود أصلاً أو تم مسحه.
- إذا كنت تريد الكتابة بالعربية و لم تحدد أن نوع الترميز الذي يجب أن يستخدم هو .
- إذا كنت تحاول التعامل مع صورة أو فيديو و لم تحدد أن نوع هذا الملف هو Binary كما شرحنا قبل قليل.
- إذا كان الملف عليه صلاحية القراءة فقط ( Read Only ) لا يمكنك تعديل النص الموجود فيه بأي شكل أو مسح الملف نفسه من الحاسوب.
- في حال كنت تريد إنشاء مجلد أو ملف و لم تكن تملك الصلاحيات التي تخولك لذلك. فمثلاً في نظام ويندوز لا تستطيع إنشاء ملف على المسار C:\ إذا لم تكن تملك صلاحيات مدير النظام.
في المثال التالي سنقوم بفتح الملف و التعامل معه بداخل بلوك
لضمان أن لا تحدث أي مشكلة تؤدي إلى تعليق البرنامج و لعرض أي خطأ قد يحدث أيضاً.
عند التعامل مع الملفات قد تواجهك عدة مشاكل قد يكون سببها نظام التشغيل أو المستخدم.
لذلك عليك دائماً حماية الكود الذي من خلاله ستتعامل مع الملفات بالجمل
بعض المشاكل التي قد تحدث معك أثناء التعامل مع الملفات:
- إذا كان مسار الملف الذي تريد التعامل معه مذكور بشكل غير صحيح.
- إذا كنت تحاول قراءة محتوى ملف غير موجود أصلاً أو تم مسحه.
- إذا كنت تريد الكتابة بالعربية و لم تحدد أن نوع الترميز الذي يجب أن يستخدم هو .
- إذا كنت تحاول التعامل مع صورة أو فيديو و لم تحدد أن نوع هذا الملف هو Binary كما شرحنا قبل قليل.
- إذا كان الملف عليه صلاحية القراءة فقط ( Read Only ) لا يمكنك تعديل النص الموجود فيه بأي شكل أو مسح الملف نفسه من الحاسوب.
- في حال كنت تريد إنشاء مجلد أو ملف و لم تكن تملك الصلاحيات التي تخولك لذلك. فمثلاً في نظام ويندوز لا تستطيع إنشاء ملف على المسار C:\ إذا لم تكن تملك صلاحيات مدير النظام.
في المثال التالي سنقوم بفتح الملف و التعامل معه بداخل بلوك
لضمان أن لا تحدث أي مشكلة تؤدي إلى تعليق البرنامج و لعرض أي خطأ قد يحدث أيضاً.المثال الأول
بعد تشغيل الملف
سيتم طباعة المشكلة التي حدثت أثناء محاولة القراءة من الملف كنص عادي و لن يؤدي ذلك إلى تعليق البرنامج.
هنا قمنا بإعادة المثال السابق تماماً لكننا حاولنا فتح الملف بوسطة البلوك
.
لاحظ أن النتيجة هي نفسها في الحالتين.
بعد تشغيل الملف
سيتم طباعة المشكلة التي حدثت أثناء محاولة القراءة من الملف كنص عادي و لن يؤدي ذلك إلى تعليق البرنامج.هنا قمنا بإعادة المثال السابق تماماً لكننا حاولنا فتح الملف بوسطة البلوك
.لاحظ أن النتيجة هي نفسها في الحالتين.
المثال الثاني
بعد تشغيل الملف
سيتم طباعة المشكلة التي حدثت أثناء محاولة القراءة من الملف كنص عادي و لن يؤدي ذلك إلى تعليق البرنامج.
بعد تشغيل الملف
سيتم طباعة المشكلة التي حدثت أثناء محاولة القراءة من الملف كنص عادي و لن يؤدي ذلك إلى تعليق البرنامج.
تعليقات
إرسال تعليق