التعامل مع الملفات (File Handling)
الدرس الخامس كيفية التعامل مع الملفات في بايثون. كيفية قراءة البيانات من الملفات وكتابة البيانات إلى الملفات
تعلم بايثون
February 1, 2025

الدرس الخامس: التعامل مع الملفات (File Handling)
مرحبًا بك في الدرس الخامس من سلسلة تعلم لغة بايثون! في هذا الدرس، سنركز على كيفية التعامل مع الملفات في بايثون. ستتعلم كيفية قراءة البيانات من الملفات وكتابة البيانات إلى الملفات . هذه المهارات ضرورية جدًا عندما تعمل على مشاريع تتطلب تخزين البيانات بشكل دائم أو قراءة البيانات من ملفات خارجية.
1. فتح الملفات
للتعامل مع الملفات في بايثون، نستخدم الدالة open()
. هذه الدالة تأخذ مسار الملف وكيفية فتحه (قراءة أم كتابة) كمعلمتين أساسيتين.
أ. أوضاع فتح الملف
"r"
: وضع القراءة (Read). وهو الوضع الافتراضي. إذا لم يكن الملف موجودًا، سيظهر خطأ."w"
: وضع الكتابة (Write). يُنشئ الملف إذا لم يكن موجودًا، وإذا كان موجودًا فإنه يمسح محتوياته."a"
: وضع الإضافة (Append). يُضيف بيانات جديدة إلى نهاية الملف دون حذف المحتوى الحالي."x"
: وضع الإنشاء (Create). يُنشئ الملف فقط إذا لم يكن موجودًا. إذا كان الملف موجودًا، سيظهر خطأ.
# فتح ملف للقراءة
file = open("example.txt", "r")
# فتح ملف للكتابة
file = open("example.txt", "w")
ب. إغلاق الملف
بعد الانتهاء من العمل مع الملف، يجب إغلاقه باستخدام الدالة close()
.
file = open("example.txt", "r")
# بعض العمليات...
file.close()
ملاحظة: من الأفضل استخدام العبارة with
عند التعامل مع الملفات لأنها تضمن إغلاق الملف تلقائيًا حتى إذا حدث خطأ أثناء التنفيذ.
with open("example.txt", "r") as file:
# بعض العمليات...
pass # لا حاجة لإغلاق الملف يدويًا
2. قراءة البيانات من الملفات
أ. قراءة المحتوى بالكامل
يمكنك قراءة محتوى الملف بالكامل باستخدام الدالة read()
.
with open("example.txt", "r") as file:
content = file.read()
print(content)
ب. قراءة السطور واحدة تلو الأخرى
إذا كنت تريد قراءة كل سطر على حدة، يمكنك استخدام الدالة readline()
أو التكرار عبر الملف باستخدام حلقة for
.
# قراءة السطر الأول فقط
with open("example.txt", "r") as file:
first_line = file.readline()
print(first_line)
# قراءة جميع السطور
with open("example.txt", "r") as file:
for line in file:
print(line.strip()) # strip() تزيل المسافات البيضاء والخطوط الجديدة
ج. قراءة جميع السطور كقائمة
يمكنك أيضًا قراءة جميع السطور في الملف كقائمة باستخدام الدالة readlines()
.
with open("example.txt", "r") as file:
lines = file.readlines()
print(lines) # النتيجة: قائمة تحتوي على كل سطر كعنصر
3. كتابة البيانات إلى الملفات
أ. الكتابة إلى ملف جديد
إذا كنت تريد كتابة بيانات جديدة إلى ملف، يمكنك استخدام وضع الكتابة "w"
.
with open("example.txt", "w") as file:
file.write("Hello, World!\n")
file.write("This is a new line.")
ب. إضافة بيانات إلى ملف موجود
إذا كنت تريد إضافة بيانات جديدة إلى نهاية الملف دون حذف المحتوى الحالي، استخدم وضع الإضافة "a"
.
with open("example.txt", "a") as file:
file.write("\nThis line was appended.")
4. التعامل مع الملفات الثنائية
إلى جانب الملفات النصية، يمكن أيضًا التعامل مع الملفات الثنائية مثل الصور أو الملفات المضغوطة. يتم ذلك باستخدام الأوضاع "rb"
(قراءة الملفات الثنائية) و"wb"
(كتابة الملفات الثنائية).
أ. قراءة ملف ثنائي
with open("image.jpg", "rb") as file:
binary_data = file.read()
ب. كتابة ملف ثنائي
with open("new_image.jpg", "wb") as file:
file.write(binary_data)
5. تطبيقات عملية
تطبيق 1: قراءة وطباعة محتوى ملف نصي
# افتراض أن لدينا ملف باسم example.txt يحتوي على نصوص
with open("example.txt", "r") as file:
for line in file:
print(line.strip())
تطبيق 2: إنشاء ملف وكتابة بيانات فيه
# إنشاء ملف جديد وكتابة بعض البيانات
with open("data.txt", "w") as file:
file.write("Name: Ali\n")
file.write("Age: 25\n")
file.write("City: Riyadh\n")
# قراءة الملف بعد كتابته
with open("data.txt", "r") as file:
print(file.read())
تطبيق 3: إضافة بيانات إلى ملف موجود
# إضافة بيانات جديدة إلى ملف موجود
with open("data.txt", "a") as file:
file.write("Country: Saudi Arabia\n")
# قراءة الملف بعد الإضافة
with open("data.txt", "r") as file:
print(file.read())
6. التعامل مع الاستثناءات
عند التعامل مع الملفات، قد تواجه أخطاء مثل عدم وجود الملف أو عدم وجود إذن للوصول إليه. لذلك، من الجيد استخدام الاستثناءات (Exceptions) للتعامل مع هذه الحالات.
try:
with open("nonexistent_file.txt", "r") as file:
content = file.read()
except FileNotFoundError:
print("الملف غير موجود!")
except PermissionError:
print("لا توجد صلاحية للوصول إلى الملف!")
7. نصائح حول التعامل مع الملفات
-
استخدام العبارة
with
:
دائمًا استخدمwith
عند التعامل مع الملفات لأنه يضمن إغلاق الملف تلقائيًا. -
تجنب الكتابة المتكررة:
عند الكتابة إلى ملف كبير، حاول تقليل عدد المرات التي تكتب فيها البيانات لتحسين الأداء. -
التحقق من وجود الملف:
قبل محاولة قراءة ملف، تأكد من وجوده باستخدامos.path.exists()
.
import os
if os.path.exists("example.txt"):
with open("example.txt", "r") as file:
print(file.read())
else:
print("الملف غير موجود!")
الخاتمة
في هذا الدرس، تعلمت كيفية قراءة البيانات من الملفات وكتابة البيانات إلى الملفات باستخدام بايثون. هذه المهارات ضرورية جدًا عندما تحتاج إلى تخزين البيانات بشكل دائم أو قراءة البيانات من ملفات خارجية.
في الدرس القادم، سنتحدث عن الدوال (Functions) بمزيد من التفصيل وكيفية تنظيم الكود باستخدامها. استمر في الممارسة ولا تتردد في طرح الأسئلة إذا كنت بحاجة إلى مساعدة!
🚀 أنت الآن على الطريق الصحيح لتصبح مبرمجًا محترفًا!
التعليقات

لا يوجد اي تعليقات
يرجى تسجيل الدخول لترك تعليق