Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

بايثونالدالة seek()

تعريفها

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



بناؤها

seek(offset, from_what=0)
seek(offset, from_what=0)


باراميترات

  • from_what هو باراميتر إختياري يمكنك أن تمرر إحدى الأرقام التالية مكانه:
    • الرقم 0 إذا أردت الرجوع إلى أول حرف في الملف.
    • الرقم 1 إذا أردت البقاء عند حرف الحالي الذي وصلت إليه في الملف.
    • الرقم 2 إذا أردت الذهاب إلى آخر حرف في الملف.
  • مكان الباراميتر offset تمرر رقم يمثل بعد كم حرف نسبة للبراميتر from_what تريد أن تبدأ.


قيمة الإرجاع

لا ترجع قيمة.


في المثال التالي قمنا باستخدام الدالة seek() للعودة إلى أول الملف بعد أن كنا قد قمنا بقراءة بعد الأحرف منه.

مثال

Test.py
# للإشارة إلى أننا سنستخدم هذا الكائن لقراءة النص الموجود في الملف 'r' و وضعنا الرمز 'demo.txt' هنا قمنا بإنشاء كائن يشير لملف إسمه
opened_file = open('demo.txt', 'r')
# الذي يشير للملف المفتوح حتى ترجع أول 10 أحرف موجودة في النص, بعدها قمنا بطباعة النص الذي سترجعه opened_file من الكائن read() هنا قمنا باستدعاء الدالة
print('Characters read:', opened_file.read(10))
# من جديد read() هنا قمنا بطباعة رقم الحرف الذي سيتم الطباعة من بعده عند استدعاء الدالة
print('Current file position:', opened_file.tell())
# و تمرير القيمتين 0 و 0 لها للرجوع إلى الحرف الأول في الملف opened_file من الكائن seek() هنا قمنا باستدعاء الدالة
opened_file.seek(0, 0)
# من جديد read() هنا قمنا بطباعة رقم الحرف الذي سيتم الطباعة من بعده عند استدعاء الدالة
print('Current file position:', opened_file.tell())
# الذي يشير للملف المفتوح حتى ترجع نفس الـ 10 أحرف السابقة, بعدها قمنا بطباعة النص الذي سترجعه opened_file من الكائن read() هنا قمنا باستدعاء الدالة
print('Characters read again:', opened_file.read(10))
# لإغلاق الإتصال مع الملف المفتوح في الذاكرة opened_file من الكائن close() هنا قمنا باستدعاء الدالة
opened_file.close()
# للإشارة إلى أننا سنستخدم هذا الكائن لقراءة النص الموجود في الملف 'r' و وضعنا الرمز 'demo.txt' هنا قمنا بإنشاء كائن يشير لملف إسمه opened_file = open('demo.txt', 'r') # الذي يشير للملف المفتوح حتى ترجع أول 10 أحرف موجودة في النص, بعدها قمنا بطباعة النص الذي سترجعه opened_file من الكائن read() هنا قمنا باستدعاء الدالة print('Characters read:', opened_file.read(10)) # من جديد read() هنا قمنا بطباعة رقم الحرف الذي سيتم الطباعة من بعده عند استدعاء الدالة print('Current file position:', opened_file.tell()) # و تمرير القيمتين 0 و 0 لها للرجوع إلى الحرف الأول في الملف opened_file من الكائن seek() هنا قمنا باستدعاء الدالة opened_file.seek(0, 0) # من جديد read() هنا قمنا بطباعة رقم الحرف الذي سيتم الطباعة من بعده عند استدعاء الدالة print('Current file position:', opened_file.tell()) # الذي يشير للملف المفتوح حتى ترجع نفس الـ 10 أحرف السابقة, بعدها قمنا بطباعة النص الذي سترجعه opened_file من الكائن read() هنا قمنا باستدعاء الدالة print('Characters read again:', opened_file.read(10)) # لإغلاق الإتصال مع الملف المفتوح في الذاكرة opened_file من الكائن close() هنا قمنا باستدعاء الدالة opened_file.close()

بعد تشغيل الملف Test.py, في كل مرة يتم فيها إستدعاء الدالة read() سترجع الخمس أحرف التالية الموجودة في الملف demo.txt الذي إفترضنا أننا أنشأناه في نفس المشروع الذي نعمل فيه.

Characters read: Self study
Current file position: 10
Current file position: 0           <-- seek() الموقع 0 في الملف يعني أننا عدنا لأول الملف و هذا طبعاً حدث بسبب إستدعاء الدالة
Characters read again: Self study