الدرس التاسع: التعامل مع الملفات (File Handling) في Python

الدرس التاسع: التعامل مع الملفات (File Handling) في Python
الدرس التاسع: التعامل مع الملفات (File Handling) في Python

 

الدرس التاسع: التعامل مع الملفات (File Handling) في Python 

مقدمة:

التعامل مع الملفات 📝 مهارة أساسية لكل مبرمج، لأنه بيساعدنا نخزن البيانات ونقرأها من الملفات بشكل دائم. في الدرس ده، هنتعلم كيفية قراءة الملفات، الكتابة إليها، وإدارتها بفعالية.


أولاً: أساسيات التعامل مع الملفات

1. فتح ملف باستخدام open()

  • نستخدم open() لفتح الملفات. بيكون له شكل عام:

file = open("filename", "mode")
  • أوضاع التشغيل الشائعة:
    • "r": للقراءة فقط.
    • "w": للكتابة، ويمسح المحتوى القديم.
    • "a": لإضافة محتوى جديد دون مسح القديم.
    • "x": لإنشاء ملف جديد.

2. إغلاق الملف باستخدام close()

بعد ما ننتهي من التعامل مع الملف، لازم نقفله باستخدام close().

مثال بسيط:


file = open("example.txt", "w")
file.write("Hello, Python!")
file.close()

ثانيًا: القراءة من الملفات

1. قراءة ملف بالكامل


file = open("example.txt", "r")
content = file.read()
print(content)
file.close()

2. قراءة الأسطر واحدة تلو الأخرى

نستخدم readline() أو readlines() لقراءة كل سطر على حدة:


file = open("example.txt", "r")
for line in file:
print(line.strip()) # حذف المسافات البيضاء الزائدة
file.close()

ثالثًا: الكتابة إلى الملفات

1. الكتابة باستخدام "w"

الوضع "w" يمسح محتويات الملف قبل الكتابة.


file = open("example.txt", "w")
file.write("This is a new line.\n")
file.close()

2. الإضافة باستخدام "a"

الوضع "a" يضيف المحتوى الجديد دون مسح القديم.


file = open("example.txt", "a")
file.write("Appending a new line.\n")
file.close()

رابعًا: التعامل الآمن مع الملفات باستخدام with

لماذا نستخدم with؟

with بيضمن غلق الملف تلقائيًا بمجرد الانتهاء منه، حتى لو حصل خطأ أثناء تشغيل البرنامج. 😊

مثال:


with open("example.txt", "r") as file:
content = file.read()
print(content) # مش محتاجين نكتب file.close()

خامسًا: أوضاع إضافية للتعامل مع الملفات

1. الوضع الثنائي (Binary Mode)

  • لو عايز تتعامل مع ملفات الصور أو الفيديوهات، بنستخدم "rb" أو "wb".

with open("image.jpg", "rb") as file:
data = file.read()
print("Image data loaded!")

2. وضع القراءة والكتابة معًا

  • "r+": قراءة وكتابة دون حذف المحتوى.
  • "w+": كتابة وقراءة بعد حذف المحتوى.
  • "a+": إضافة وقراءة.

سادسًا: حذف وإعادة تسمية الملفات 📂

1. حذف ملف باستخدام os

نحتاج مكتبة os لإدارة الملفات والمجلدات:


import os
if os.path.exists("example.txt"):
os.remove("example.txt")
print("File deleted!")
else:
print("File does not exist!")

2. إعادة تسمية ملف


os.rename("old_name.txt", "new_name.txt")

سابعًا: أمثلة عملية

1. برنامج لحساب عدد الكلمات في ملف:


def count_words(filename):
try:
with open(filename, "r") as file:
content = file.read()
words = content.split()
return len(words)
except FileNotFoundError:
return "File not found!"
filename = "example.txt"
print(f"The file contains {count_words(filename)} words.")

2. برنامج لإنشاء ملف يوميات:


from datetime import datetime
def write_diary(entry):
with open("diary.txt", "a") as file:
date = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
file.write(f"{date} - {entry}\n")
entry = input("What do you want to write in your diary? ")
write_diary(entry)
print("Your diary has been updated! ✨")

3. برنامج لتحليل بيانات CSV:


import csv
with open("data.csv", "r") as file:
reader = csv.reader(file)
for row in reader:
print(row)

خاتمة:

في هذا الدرس، استعرضنا كيفية قراءة وكتابة الملفات، وإدارتها بأمان باستخدام with، بالإضافة إلى أوضاع متقدمة زي الوضع الثنائي وإدارة الملفات. في الدرس القادم، هنغوص في التعامل مع الأخطاء (Error Handling) لضمان استقرار البرامج. 🛠️

تعليقات