recent
أخبار ساخنة

التعامل مع الملفات في لغة بايثون 26

AM VIIP
الصفحة الرئيسية
التعامل مع الملفات في لغة بايثون 26

معالجة الملفات

التعامل مع الملفات ( Files Handling ) يقصد بها إجراء عملية ما على الملفات بمختلف أنواعها ( مثل txt - jpg - mp4 ). في هذا الدرس سوف تتعلم كيف تقرأ محتوى من ملف و كيف تنشئ نسخة منه و كيف تعدّل محتواه و كيف تحذفه إلخ… مثلاً يكون لدينا ملف txt على سطح المكتب و بداخله بيانات و نريد قراءتها أو الكتابة عليه.

 

الدالة open()

الدالة open() هي من الدوال الجاهزة في بايثون و هي تُستخدَم من أجل إنشاء ملف جديد أو فتح هذا الملف الذي سوف يتم التعامل معه, و في حال تم إنشاء الملف بشكل صحيح أو تم فتح الملف ترجَّع كائن file يتيح التعامل معه و في حال لم تستطع إنشاء الملف أو الوصول إليه ترمي إستثناء.

الشكل العام لبناء دالة open() في بايثون

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None)

حيث أن:

  • في مكان البارميتر file نقوم بتمرير نص يمثل إسم الملف الذي سوف يتم إنشاؤه أو التعامل معه.
  • mode باراميتر إختياري, نمرر مكانه حرف أو أكثر و يمثل كيف سوف نتعامل مع الملف سواء القراءة منه أو الكتابة فيه.
  • buffering باراميتر إختياري يمكن أن نمرّر في مكانه رقم يحدد كيف سيتم تخزين الأحرف بشكل مؤقت أثناء الكتابة أو القراءة من هذا الملف.
  • encoding هو باراميتر إختياري و يمكن أن نمرّر في مكانه إسم الترميز الذي يجب إستخدامه عندما نقوم في التعامل مع الملف.
  • errors هو باراميتر إختياري و يمكن أن نمرر في مكانه كلمة من أجل تحديد كيف سوف يتم التعامل مع الأخطاء التي قد تحدث عند التعامل مع هذا الملف.
  • newline هو باراميتر إختياري أيضاً, يمكن أن نمرر في مكانه الرمز الذي يمثل نهاية كل سطر في الملف و يجعل النص الذي يوضع بعضه ينزل على سطر جديد.

أهم باراميتر في هذه الدالة هو الباراميتر mode لأنه قلنا أن الحرف الذي نمرره مكانه يحدد الهدف من فتح الملف.

 

الرموز المستخدمة مع الملفات في بايثون

فيما يلي سوف نقو بإدراج بعض الرموز التي نقوم بإستخدامها مع الملفات في بايثون.

  1. الرمز "r" للقراءة.
  2. الرمز "w" للكتابة.
  3. الرمز "a" للإضافة.
  4. الرمز "r+" قراءة و إضافة.
  5. الرمز "w+" حذف الملف السابق و اضافة جديد بنفس الاسم.
  6. الرمز "a+" اضافة الملف المحدد اسمه ان لم ينوجد.
  7. الرمز "rb and rb+" قراءة بايتات صورة.
  8. الرمز "ab and ab+" اضافة بايتات اكثر من ملف ودمجهن سوياً.
  9. الرمز "wb and wb+" قراءة وكتابه بايتات صورة.

 

 مثال 1

لننشأ ملف txt على سطح المكتب و نسمي الملف مثلاً 1 ونكتب بداخله Nusur Tech سنقوم بقراءة الملف عن طريق البايثون, اول شيئ نقوم به تحديد مسار هذا الملف عن طريق file_dir.

>>>file_dir = "C:\\Users\\sama\\Desktop\\1.txt"

لننشأ متغير مثلا اسمه fp

>>>file_dir = "C:\\Users\\sama\\Desktop\\1.txt"
>>>fp = open (file_dir, "r")
>>>fp.read()
'Nusur tech'

كما لاحظنا في المثال السابق في البداية حدّدنا مسار الملف ثم انشأنا متغير و قرأنا ما بداخل الملف.

لنأخذ مثال آخر و نضيف عدة اسطر بالملف الذي اسمه 1.

>>>file_dir = "C:\\Users\\sama\\Desktop\\1.txt"
>>>fp = open(file_dir,"r")
>>>print (fp.readlines())

وسوف تكون النتيجة ك هيئة مصفوفة كالتالي

['nusur tech\n', 'database\n', 'ahmedamviip']

إستخدمنا الدالة readlines في المثال السابق. اما اذا اردنا طباعة اول سطر فقط نكتب الاندكس التابع له كالتالي

print (fp.readlines() [0] )

و لكتابة شيئ ضمن البيانات نستخدم الحرف a كالتالي

file_dir = "C:\\Users\\sama\\Desktop\\1.txt"
fp = open(file_dir,"a")
fp.write("hello")
fp.close

و لإزالة جميع البيانات من الملف و كتابة بديل نستخدم الحرف w.

fp = open(file_dir,"w")
google-playkhamsatmostaqltradent