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

0 4٬606

لغة بايثون من لغات البرمجة الشهيرة التي تُسهل على المبرمجين التعامل مع الملفات. من ضمن سلسلة المقالات الموجهة للمبتدئين التي تقدمها بايثونات لقرائها الكرام، سنتطرق في هذا المقال الى كيفية التعامل مع الملفات بلغة برمجة بايثون والتي تتضمن وظائف قوية وسهلة الإستخدام للتعامل مع الملفات. تعتبر مهارات التعامل مع الملفات من أبسط وأهم المهارات التي يجب  أن يتحلى بها المبرمجون بأي لغة يبرمجون بها. تعد الملفات أهم الوسائط لتخزين البيانات بأنواعها ليتم استرجاع تلك البيانات و معالجتها أو حتى لتكون مدخلات لتشغيل برامج أخرى.

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

قبل البدء لا بد لنا أن نتعرف على أوضاع التعامل مع الملفات لغة البرمجة البايثون سواء للقراءة أو الإنشاء و الكتابة. سيلخص الجدول التالي تلك الأوضاع بشكل موجز قبل استخدامها في برامجنا.

[spbtbl_sc id=6]

انشاء ملف بوضع الكتابة في لغة بايثون

والآن لنكتب برنامجا ينشئ ملفا نصيا بوضع الكتابة. و من الجدير بالذكر أنه عند انشاء أو فتح ملف لا بد من إغلاقه.

# creating a file in writing mode
f = open("myfile.txt","w")

# closing the file
f.close()

سنجد أن بايثون ستنشئ لنا ملفا نصيا إسمه myfile.txt بوضع الكتابة عليه.

لنعدل برنامجنا ليكتب على الملف الذي انشأناه سابقا للكتابة عليه.

# creating a file in writing mode
f = open("myfile.txt","w")

# reading text from the user
txt = input("type something >>> ")

# writing the text to the file
f.write(txt)


# closing the file
f.close()

سنجد أن البيانات النصية التي أدخلها سيتم كتابتها على الملف النصي بنجاح.

ممتاز .. والآن لنقم بإنشاء ملف نصي باسم myfile.txt يحتوي النص التالي ليكون جاهزا للمهارة التالية.

Pythonat.com #1
is the number one arabic python blog
where you can find
anything
related to python programming

قراءة محتويات ملف في لغة بايثون

والآن لنكتب برنامجا يقرأ جميع محتويات الملف النصي دفعة واحدة ثم يطبعها على الشاشة

# opening file in reading mode
rf = open("myfile.txt",'r')

# reading whole file as a chunk into a variable
data = rf.read()

# printing read data
print(data)
rf.close()

توجد لدى بايثون وظيفة مفيدة لقراءة محتويات الملف على شكل أسطر متفرقة. لنقم بتعديل البرنامج السابق ليكون كالتالي:

# opening file in reading mode
rf = open("myfile.txt","r")

# reading lines from the file and print them one by open
for line in rf.readlines():
print(line)


rf.close()

لنستخدم الآن وضع الإضافة بالبرنامج التالي ليقوم المستخدم بإدخال نص يتم إضافته على الملف النصي السابق دون محو محتوياته الأصلية.

# opening file in appending mode
rf = open("myfile.txt",'a')

txt = input(">>> ")
rf.write(txt)

rf.close()

التعامل مع الملفات من خلال جملة with

لنكتب الآن برنامجا نستفيد فيه من خاصية قراءة و كتابة البيانات الثنائية مع استخدام مهارة الإغلاق التلقائي للملفات المفتوحة باستخدام with.

باختصار، تقوم with في بايثون بإغلاق الملف المفتوح تلقائيا بعد الانتهاء من استخدامه. هذه الخاصة مفيدة جدا في حال نسي المبرمج كتابة دالة الإغلاق للملفات. و يمكننا فهم وظيفة with بشكل أفضل بحيث أنها تقوم باستدعاء كل ماهو ضروري سواء مصادر من نظام التشغيل أو ملفات و غيره ضمن نطاقها الخاص ومن ثم ارجاها تلقائيا لمكانها.

لنقم بكتابة برنامج يقوم بعمل نسخة من ملف ثنائي مثل صورة أو ملف فيديو.

# with statement automatically closes the opened "source" file
with open("pic.jpeg",'rb') as rpic:

# creatiرg a file in writing binary mode
wpic = open("write_pic.jpeg","wb")

# reading all binary data from source picture
read_data = rpic.read()
# writing binary data to target file
wpic.write(read_data)

# closing target file
wpic.close()

من خلال هذا المقال السريع، تعلمنا كيفية استخدام أبرز الوظائف والمهارات اللازمة للتعامل مع الملفات والتي ستكون مفيدة جدا على الرغم من بساطتها لكل مبرمجي بايثون لكتابة برامجهم الاحترافية لاحقا.

 

 

اترك ردًا

Your email address will not be published.