عمليات ملف Python – قراءة وكتابة في الملفات باستخدام Python

في هذا البرنامج التعليمي، سنعمل على العديد من عمليات ملفات Python المختلفة. سنقوم بشرح كيفية استخدام Python لقراءة ملف، كتابة في ملف، حذف ملفات، والمزيد. لذلك دون أي تأخير، دعونا نبدأ.

العمل مع الملفات في Python

في البرنامج التعليمي السابق، استخدمنا الوحدة الرئيسية لأخذ الإدخال. الآن، سنقوم بأخذ الإدخال باستخدام ملف. وهذا يعني أننا سنقوم بقراءة من الملف والكتابة في الملف. لفعل ذلك، نحتاج إلى اتباع بعض الخطوات. تلك الخطوات هي:

  1. – فتح ملف
  2. – أخذ الإدخال من تلك الملف / كتابة الإخراج إلى تلك الملف
  3. – إغلاق الملف

سنتعلم أيضًا بعض العمليات المفيدة مثل نسخ الملف وحذف الملف.

لماذا تحتاج إلى عمليات الملفات في Python؟

عند العمل مع مجموعات بيانات كبيرة في مشاكل تعلم الآلة، يكون العمل مع الملفات ضرورة أساسية. نظرًا لأن Python هي لغة مستخدمة بشكل رئيسي في علم البيانات، يجب أن تكون ماهرًا في مختلف عمليات الملفات التي يقدمها Python.

لذا، دعونا نستكشف بعض عمليات ملفات Python هنا.

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

الخطوة الأولى للعمل مع الملفات في Python هي تعلم كيفية فتح ملف. يمكنك فتح الملفات باستخدام الطريقة open().

تقبل الدالة open() في Python مُعطيين. الأول هو اسم الملف مع المسار الكامل والثاني هو وضع فتح الملف.

أدناه، قمت بتقديم بعض أوضاع القراءة الشائعة للملفات:

  • ‘r’ : هذا الوضع يشير إلى أن الملف سيتم فتحه للقراءة فقط
  • ‘w’ : هذا الوضع يشير إلى أن الملف سيتم فتحه للكتابة فقط. إذا كان الملف الذي يحتوي على هذا الاسم غير موجود، فسيتم إنشاء ملف جديد
  • ‘a’ : هذا الوضع يشير إلى أن إخراج هذا البرنامج سيتم إلحاقه بالإخراج السابق لهذا الملف
  • ‘r+’ : هذا الوضع يشير إلى أن الملف سيتم فتحه للقراءة والكتابة

بالإضافة إلى ذلك، لنظام التشغيل Windows، يمكنك إضافة ‘b’ للوصول إلى الملف بشكل ثنائي. هذا لأن Windows يميز بين ملف نصي ثنائي وملف نصي عادي.

لنفترض، نضع ملف نصي باسم ‘file.txt’ في نفس الدليل الذي توجد فيه رمزنا. الآن نريد فتح ذلك الملف.

ومع ذلك، تقوم وظيفة open(filename, mode) بإرجاع كائن ملف. باستخدام هذا الكائن يمكنك متابعة عملياتك اللاحقة.

#directory:   /home/imtiaz/code.py
text_file = open('file.txt','r')

#طريقة أخرى باستخدام الموقع الكامل
text_file2 = open('/home/imtiaz/file.txt','r')
print('First Method')
print(text_file)

print('Second Method')
print(text_file2)

سيكون إخراج الشيفرة التالية هو

================== RESTART: /home/imtiaz/code.py ==================
First Method

Second Method

>>>

2. قراءة وكتابة الملفات في بايثون

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

فيما يلي بعض الوظائف في بايثون التي تتيح لك قراءة وكتابة الملفات:

  • read() : تقوم هذه الوظيفة بقراءة الملف بأكمله وإرجاع سلسلة نصية
  • readline() : تقوم هذه الوظيفة بقراءة الأسطر من الملف وإرجاعها كسلسلة نصية. تقوم بجلب السطر n إذا تم استدعاؤها للمرة الثانية n.
  • readlines() : تقوم هذه الوظيفة بإرجاع قائمة حيث يكون كل عنصر سطرًا واحدًا من ذلك الملف.
  • readlines() : تقوم هذه الوظيفة بإرجاع قائمة حيث يكون كل عنصر سطرًا واحدًا من ذلك الملف.
  • write() : تقوم هذه الوظيفة بكتابة تسلسل ثابت من الأحرف إلى ملف.
  • writelines() : تقوم هذه الوظيفة بكتابة قائمة من السلاسل.
  • append() : تقوم هذه الوظيفة بإضافة سلسلة إلى الملف بدلاً من كتابة فوق الملف.

لنأخذ مثالا على ملف “abc.txt”، ونقرأ السطور الفردية من الملف باستخدام حلقة تكرار:

#افتح الملف
text_file = open('/Users/pankaj/abc.txt','r')

#احصل على قائمة السطور
line_list = text_file.readlines();

#بالنسبة لكل سطر من القائمة، اطبع السطر
for line in line_list:
    print(line)

text_file.close() #لا تنسى إغلاق الملف

الناتج:

الآن، وبعد أن نعرف كيفية قراءة ملف في Python، دعنا نتقدم ونقوم بعملية كتابة هنا باستخدام وظيفة writelines().

#افتح الملف
text_file = open('/Users/pankaj/file.txt','w')

#قم بتهيئة قائمة فارغة
word_list= []

#كرر 4 مرات
for i in range (1, 5):
    print("Please enter data: ")
    line = input() #خذ الإدخال
    word_list.append(line) #أضف إلى القائمة


text_file.writelines(word_list) #اكتب 4 كلمات إلى الملف

text_file.close() #لا تنسى إغلاق الملف

الناتج

3. نسخ الملفات في Python باستخدام طريقة shutil()

يمكننا استخدام وحدة الـ shutil في Python لنسخ الملفات. تسمح لنا هذه الأداة بأداء عمليات النسخ والتحريك في Python على ملفات مختلفة. دعنا نعمل على ذلك بمثال:

import shutil

shutil.copy2('/Users/pankaj/abc.txt', '/Users/pankaj/abc_copy2.txt')

# طريقة أخرى لنسخ الملف

shutil.copyfile('/Users/pankaj/abc.txt', '/Users/pankaj/abc_copyfile.txt')

print("File Copy Done")

4. حذف الملفات في Python باستخدام طريقة shutil.os.remove()

تقدم وحدة shutil في Python طريقة remove() لحذف الملفات من نظام الملفات. دعنا نلقي نظرة على كيفية تنفيذ عملية الحذف في Python.

import shutil
import os

# طريقتان لحذف الملف
shutil.os.remove('/Users/pankaj/abc_copy2.txt')

os.remove('/Users/pankaj/abc_copy2.txt')

5. إغلاق ملف مفتوح في Python باستخدام الطريقة close()

عندما تقوم بفتح ملف في بايثون، فإن إغلاق الملف بعد إجراء التغييرات أمر مهم للغاية. يحفظ ذلك أي تغييرات قد قمت بها مسبقًا، ويقوم بإزالة الملف من الذاكرة، ويمنع أي قراءة أو كتابة إضافية في البرنامج.

\

\الصيغة لإغلاق ملف مفتوح في بايثون:\

fileobject.close()

إذا كنا نواصل من أمثلتنا السابقة حيث قرأنا الملفات، إليك كيفية إغلاق الملف:

\

text_file = open('/Users/pankaj/abc.txt','r')
\# بعض العمليات على الملف هنا\

text_file.close()

بالإضافة إلى ذلك، يمكنك تجنب إغلاق الملفات يدويًا إذا كنت تستخدم كتلة with. فور تنفيذ كتلة with، يتم إغلاق الملفات ولا تكون متاحة للقراءة والكتابة.

\

\6. Python FileNotFoundError\\

من الشائع أن تظهر FileNotFoundError عند العمل مع الملفات في بايثون. يمكن تجنبها بسهولة عن طريق توفير مسارات ملف كاملة عند إنشاء كائن الملف.

\

  File "/Users/pankaj/Desktop/string1.py", line 2, in <module>
    text_file = open('/Users/pankaj/Desktop/abc.txt','r')
FileNotFoundError: [Errno 2] No such file or directory: '/Users/pankaj/Desktop/abc.txt'

لحل مشكلة FileNotFoundError، تحتاج ببساطة إلى التحقق من أن المسار الذي ذكرته لأسلوب فتح الملف صحيح.

\

\الختام\

هذه هي عمليات الملفات في البايثون. هناك طرق أخرى كثيرة يمكنك استخدام الملفات فيها داخل البايثون، والتي تشمل قراءة بيانات CSV وأكثر من ذلك. فيما يلي مقالة عن كيفية استخدام وحدة Pandas لـ قراءة مجموعات بيانات CSV في البايثون.

I hope you enjoyed reading the article! Happy learning 🙂

**المراجع:
**https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files

Source:
https://www.digitalocean.com/community/tutorials/python-read-file-open-write-delete-copy