قراءة الملفات والكتابة عليها في لغة البرمجة بايثون

 

تتيح لغة البرمجة بايثون (Python) كغيرها من لغات البرمجة للمستخدمين من القيام بالوصول إلى الملفات في نظام التشغيل (operating system) وقرائتها والكتابة عليها دون الحاجة إلى استخدام مكتبات خارجية، حيث أن من من أكثر المهام شيوعاً في لغة البرمجة (Python) هو عملية قراءة الملفات والكتابة عليها سواء كانت الكتابة في ملف نصي بسيط، أو قراءة ملف من (server) أو حتى تحليل بيانات البايت الأولية، فإن كل هذه المواقف تتطلب قراءة ملف أو الكتابة عليه.

 

وتتم عملية القراءة من خلال استخدام الدالة (open()‎) لفتح وقراءة الملفات في بايثون، وتعيد هذه الدالة كائن من نوع (file)، والشكل العام لهذه الدالة على النحو التالي:

 

open (file, mode='r', buffering=-1, encoding=None, errors=None, newline=None)
  • حيث مكان المعامل (file) يتم وضع النص الذي يمثل إسم الملف الذي سيتم التعامل معه.

 

  • مكان المعامل (mode): يتم وضع حرف والذي يمثل  بدوره كيف سيتم التعامل مع الملف مثل: القراءة من الملف أو الكتابة عليه.

 

  • مكان المعامل (buffering): يتم وضع رقم يحدد كيفية تخزين الأحرف بشكل مؤقت في الذاكرة أثناء الكتابة أو القراءة من الملف.

 

  • مكان المعامل (encoding): يتم وضع إسم الترميز الذي يجب استخدامه عند التعامل مع الملف.

 

  • مكان المعامل (errors): يتم وضع كلمة لتحديد كيف سيتم التعامل مع الأخطاء الموجودة داخل الملف.

 

  • مكان المعامل (newline): يتم وضع الرمز الذي يمثل نهاية كل سطر في الملف والذي يجعل النص الذي يوضع بعده يكون على سطر جديد.

 

وفي العادة يتم فتح الملفات في النمط النصي (text mode) والذي يتم من خلاله قراءة السلاسل النصية وكتابتها من وإلى الملفات في لغة بايثون.

 

أهم الدوال التي تستخدم لقراءة الملفات والكتابة عليها في لغة البرمجة بايثون

 

هناك العديد من الدوال التي تستخدم في لغة البرمجة بايثون لقراءة الملفات والكتابة عليها، وفيما يلي أهم هذه الدوال:

 

  • الدالة( f.read()‎): وتستخدم هذه الدالة لقراءة محتويات الملف ومن الممكن استدعاء الدالة (f. read (size)‎) والتي تقوم بقراءة البيانات وتعيدها على شكل  سلسلة نصية.

 

  • الدالة (write (string)): تستخدم هذه الدالة للكتابة في الكائن الذي يمثل الملف المفتوح الذي قام باستدعائها، حيث مكان المعامل (string) يتم وضع النص الذي يريد المستخدم أن يقوم بكتابته في الملف.

 

  • الدالة (writelines (aList)): تستخدم  هذه الدالة لكتابة مجموعة من النصوص التي تم تخزينها في (list) في الكائن الذي يمثل الملف المفتوح الذي قام باستدعائها، حيث مكان المعامل (lines) يتم وضع كائن يحتوي على مجموعة من النصوص التي نريد أن يتم كتابتها بنفس الترتيب في الملف.

 

  • الدالة (read (n = -1)): تستخدم هذه الدالة للقراءة من الكائن الذي يمثل الملف الذي تم فتحه من قبل المستخدم، حيث إذا قام المستخدم باستدعائها ولم يتم وضع أي رقم فإنها ستقوم بإرجاع النص الموجود في الملف مرة واحدة، و (n)  هو عبارة عن معامل اختياري.

 

  • الدالة readline (limits = -1)): تستخدم  هذه الدالة للقراءة سطراً سطراً من الكائن الذي تم فتحه والذي قام باستدعائها، حيث إذا قام المستخدم باستدعائها و لم يتم وضع لها أي رقم سيتم إرجاع السطر التالي الموجود في الملف، والمعامل (n)  هو عبارة عن  معامل اختياري من الممكن أن يتم وضع مكانه رقم يمثل عدد الأحرف التي يريد المستخدم قراءتها من السطر التالي في الملف.

 

  • الدالة (readlines (limits = -1)): تستخدم هذه الدالة لإرجاع نسخة من النص الموجود في الملف المفتوح الذي قام باستدعائها ككائن من نوع (list) حيث أن كل عنصر في كائن الـ (list)  الذي ترجعه هذه الدالة يمثل سطر موجود في الملف، وإذا قام المستخدم باستدعائها و لم يتم وضع أي رقم سيتم وضع كل الأحرف الموجودة على كل سطر في الملف في عنصر من عناصر الكائن الـ (list)، والمعامل (n) هو معامل اختياري من الممكن أن يتم تمرير مكانه رقم والذي يمثل بدوره عدد الأحرف التي يرغب بقراءتها من كل سطر في الملف.

 

  • الدالة (tell): تقوم هذه الدالة بإرجاع رقم آخر حرف في الملف تم الوصول إليه أثناء القراءة من الملف، حيث تقوم بإرجاع الموقع الحالي لكائن الملف ضمن الملف المفتوح من خلال عدد البايتات من بداية الملف إلى الموقع الحالي في الملف.

 

  • الدالة (close): تستخدم هذه الدالة لإغلاق الإتصال مع الملف و تنظيف الذاكرة من كل ما له علاقة بهذا الملف.