القراءة من الملفات

14.1 القراءة من الملفات

أهداف التعلم

في نهاية هذا القسم، ينبغي أن تكون قادرًا على

  • فهم كيفية فتح ملف باستخدام دالّة open().
  • توضيح كيفية قراءة المعلومات من ملف باستخدام read()، و readline()، و readlines().

فتح ملف

تُعد قراءة المعلومات من الملفات وكتابتها إليها مهمة شائعة في البرمجة.

تدعم بايثون فتح الملفات باستخدام الدالّة open().

نقطة تحقق

مفاهيم تطبيقية

فتح الملفات

1.
ما الطريقة الصحيحة لفتح ملف باسم firstfile.txt بحيث يمكن قراءة محتوياته في برنامج بايثون؟
  1. open("firstfile")
  2. open("firstfile.txt")
  3. fileobj = open("firstfile.txt")
2.
افترض أنه لا يوجد ملف باسم input.txt. ما نتيجة محاولة تنفيذ open("input.txt")؟
  1. Error
  2. لا شيء
  3. يُنشأ ملف "input.txt".
3.
ما نتيجة الشِفرة التالية؟
fileobj = open("newfile.txt")
print(fileobj)
  1. Error
  2. تُطبع معلومات حول الكائن fileobj.
  3. تُطبع محتويات الملف newfile.txt.

استخدام
read()
وقراءة الأسطر

توفر بايثون دوال يمكن استدعاؤها على كائن ملف لقراءة محتويات الملف:

  • تقرأ دالّة read() محتويات الملف وتُعيد سلسلة نصية.
  • تقرأ دالّة readline() السطر التالي من الملف وتُعيد سلسلة نصية.
  • تقرأ دالّة readlines() أسطر الملف كلًّا على حدة وتُعيد قائمة من السلاسل النصية تضمّ جميع أسطر الملف مرتّبةً.

مثال 14.1

استخدام read() و readlines()

يحتوي ملف باسم input.txt على المحتويات التالية:

    12
    55
    5
    91
    """Demonstrating read() and readlines()"""

    # باستخدام read()
    # فتح الملف وربطه بكائن ملف
    infile = open("input.txt")

    # قراءة محتويات الملف إلى سلسلة نصية
    str1 = infile.read()

    # طباعة str1
    print("Result of using read():")
    print(str1)

    # أغلق الملف دائمًا بعد الانتهاء من استخدامه
    infile.close()
    
    # باستخدام read()
    # فتح الملف وربطه بكائن ملف
    infile2 = open("input.txt")

    # قراءة محتويات الملف إلى سلسلة نصية list
    str_list = infile2.readlines()

    # طباعة العنصر الثالث في قائمة السلاسل النصية.
    print("Result of using readlines() and printing the third item in the string list:")
    print(str_list[2])

    # أغلق الملف دائمًا بعد الانتهاء من استخدامه
    infile2.close()

مخرجات الشِفرة هي:

    Result of using read():
    12
    55
    5
    91
    Result of using readlines() printing the third item in the string list:
    5

نقطة تحقق

read() و readline()

مفاهيم تطبيقية

قراءة الملفات

افترض أن fileobj = open("input.txt") قد نُفِّذ بالفعل لكلٍّ من الأسئلة أدناه.

input.txt:

    Hello world!
    How are you?
4.
ما هي الطريقة الصحيحة لاستخدام دالّة read() لقراءة محتويات الملف input.txt في سلسلة نصية file_str؟
  1. file_str = read(fileobj)
  2. file_str = read("input.txt")
  3. file_str = fileobj.read()
5.
ما هي الطريقة الصحيحة لاستخدام دالّة readlines()؟
  1. file_lines = readlines(fileobj)
  2. file_lines = fileobj.readlines()
6.
ما الذي يُطبع نتيجة تنفيذ print(fileobj.readline())؟
  1. يُطبع السطر الأول من الملف input.txt.
  2. تُطبع محتويات الملف input.txt.
  3. Error

جرّب بنفسك

القراءة من ملف

افتح الملف test.txt واطبع محتوياته.

جرّب بنفسك

القراءة من ملف سطرًا بسطر

يظهر الملف input.txt. يمثل الملف مجموعة من الأعداد الصحيحة. يحدد السطر الأول من الملف عدد الأعداد الصحيحة التي تليه. اكتب برنامجًا يقرأ من هذا الملف ويحدد متوسط الأرقام التي تلي السطر الأول.

input.txt

    n: 5
    25
    13
    4
    6
    19