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

إعداد هيكل المشروع للعمل على الملفات في Python
قبل البدء في كتابة الأكواد، من الأفضل تجهيز مجلد مشروع بسيط يحتوي على:
- ملف نصي لتخزين البيانات.
- ملف Python لتنفيذ الأوامر البرمجية.
يمكنك تنفيذ الخطوات التالية من الطرفية:
#this command moves you into your home directory if you're not there already
cd
#create a new directory and give it a name
mkdir python_text
#move into the directory you just created
cd python_text
#create two empty files in the same directory: one text file and one to hold your Python scripts
touch text.txt scripts.py
#open Visual Studio Code to edit code
.
في هذه المرحلة سيكون الملف text.txt فارغاً.

كيفية الكتابة إلى ملف نصي في Python
أفضل طريقة للتعامل مع الملفات في Python هي استخدام with مع الدالة open(). هذه الطريقة تساعد على فتح الملف وإغلاقه تلقائياً بعد انتهاء التنفيذ، وهو ما يجعل الكود أكثر أماناً وتنظيماً.
الصيغة العامة للكتابة إلى ملف
with open("path_to_and_name_of_file", "mode") as variable_name:
variable_name.write('What I want to write goes here')
لفهم هذا التركيب بشكل أوضح:
with: تُستخدم لإدارة الملف بشكل آمن.open(): تفتح الملف وتُرجع كائناً يمثل الملف.- المعامل الأول: مسار الملف واسمه.
- المعامل الثاني: وضع الفتح، وفي حالة الكتابة نستخدم
wاختصاراً لـwrite. as: تُستخدم لتخزين كائن الملف داخل متغير مؤقت..write(): تُستخدم لإرسال النص إلى داخل الملف.
مثال عملي على الكتابة داخل ملف
أضف الكود التالي داخل الملف scripts.py:
with open("text.txt", "w") as file:
file.write("I am learning Python!\n")
file.write("I am really enjoying it!\n")
file.write("And I want to add more lines to say how much I like it")
إذا أردت كتابة كل سطر في سطر مستقل، فعليك إضافة محرف السطر الجديد \n يدوياً داخل النص.
بعد ذلك شغّل الملف من الطرفية باستخدام الأمر:
python3 scripts.py
عند فتح text.txt ستجد أن النصوص أُضيفت إليه بنجاح.

ملاحظة مهمة حول الوضع w
يجب الانتباه إلى أن استخدام الوضع w يعني الكتابة من جديد. أي أن المحتوى القديم للملف سيتم استبداله بالكامل عند تشغيل الكود مرة أخرى.
على سبيل المثال، إذا كان الملف يحتوي مسبقاً على نص قديم:

ثم قمت بتشغيل الكود التالي:
with open("text.txt", "w") as file:
file.write("I am learning Python!\n")
file.write("I am really enjoying it!\n")
file.write("And I want to add more lines to say how much I like it")
فسيتم حذف البيانات القديمة واستبدالها بالمحتوى الجديد.

كيفية إضافة محتوى إلى ملف نصي في Python دون حذف البيانات السابقة
إذا كان هدفك هو إضافة نص جديد إلى نهاية الملف بدلاً من استبدال محتواه، فاستخدم الوضع a وهو اختصار لـ append.
الصيغة العامة للإضافة إلى الملف
with open("text.txt", "a") as file:
file.write("What I want to add on goes here")
أي نص تضعه داخل .write() سيتم إضافته إلى نهاية الملف مباشرة.
مثال عملي على append في Python
with open("text.txt", "a") as file:
file.write("I am adding in more lines\n")
file.write("And more…")
بعد تنفيذ الكود، سيُضاف النص الجديد إلى نهاية الملف دون حذف النصوص السابقة.

لكن انتبه: إذا لم تُضف \n في الموضع المناسب، فقد يبدأ النص الجديد مباشرة بعد آخر سطر موجود في الملف. لذلك يمكن كتابة الكود بهذا الشكل لتحسين التنسيق:
with open("text.txt", "a") as file:
file.write("\n")
file.write("I am adding in more lines\n")
file.write("And more…")

كيفية قراءة ملف نصي في Python
بعد إنشاء الملف وكتابة البيانات داخله أو تحديثها، تأتي مرحلة قراءة المحتوى. في Python، يتم ذلك أيضاً باستخدام with وopen()، لكن هذه المرة مع الوضع r وهو اختصار لـ read.
قراءة الملف بالكامل دفعة واحدة
with open('text.txt', 'r') as file:
print(file.read())
الدالة read() تُرجع كامل محتوى الملف كنص واحد، ثم تقوم print() بعرضه في الطرفية.

قراءة الملف سطراً بسطر باستخدام for loop
في بعض الحالات، تكون قراءة الملف سطراً بسطر أكثر ملاءمة، خصوصاً عند التعامل مع ملفات كبيرة أو عند الحاجة لمعالجة كل سطر بشكل مستقل.
with open("text.txt", "r") as file:
for line in file:
print(line)
بهذه الطريقة، يتم المرور على كل سطر في الملف على حدة وطباعته بشكل منفصل.

أفضل الممارسات عند التعامل مع الملفات في Python
- استخدم
withدائماً لتجنب نسيان إغلاق الملف. - استخدم
wفقط عندما تكون متأكداً من أنك تريد استبدال المحتوى القديم. - استخدم
aعندما ترغب في إضافة بيانات جديدة دون حذف البيانات الموجودة. - أضف
\nعند الحاجة إلى فصل الأسطر بوضوح. - اختر طريقة القراءة المناسبة:
read()للملف الكامل، أوfor loopللقراءة التدريجية.
الخلاصة التقنية
يوضح هذا المثال العملي أن التعامل مع الملفات في Python بسيط وفعّال بفضل الدالة open() مع أوضاع التشغيل المختلفة مثل w وa وr. من الناحية التقنية، يُعد فهم الفرق بين الكتابة والاستبدال والإضافة أمراً أساسياً لتجنب فقدان البيانات. وإذا كنت تطور تطبيقات تتعامل مع السجلات أو الإعدادات أو التقارير النصية، فإن إتقان هذه الأساسيات سيمنحك قاعدة قوية لبناء وظائف أكثر تقدماً في إدارة الملفات.