إذا كنت تقوم بتطوير برامج بايثون ، فقد تحتاج غالبا إلى قراءة السطر الأخير في الملف. على سبيل المثال ، قد ترغب في معرفة الإدخال الأخير في ملف السجل للتحقق من حالة تنفيذ البرنامج أو تحليل نتائج العمل.
في هذه المقالة ، سنلقي نظرة على طريقة بسيطة لحل هذه المشكلة باستخدام مكتبة بايثون القياسية. لن تحتاج إلى أي وحدات أو أدوات إضافية تابعة لجهات خارجية.
من أجل قراءة السطر الأخير في الملف ، سوف نستخدم وظيفتين من مكتبة بايثون القياسية: فتح() و ريدلينس(). يتم استخدام الوظيفة المفتوحة () لفتح الملف ، وتسمح لك وظيفة القراءة () بقراءة جميع الأسطر من الملف.
ملاحظة: هذه الطريقة مناسبة فقط للملفات الصغيرة. إذا كان الملف كبيرا جدا ، فيجب مراعاة طرق المعالجة الأخرى لتجنب مشاكل استخدام كميات كبيرة من الذاكرة.
- استخدام وظيفة فتح () لفتح ملف
- قراءة سطر الملف بسطر باستخدام حلقة
- حفظ كل صف إلى متغير
- استبدال متغير في كل تكرار للحلقة لتخزين السطر الأخير فقط
- إخراج السطر الأخير باستخدام الطباعة ()
- سؤال وجواب
استخدام وظيفة فتح () لفتح ملف
في لغة برمجة بايثون ، هناك وظيفة خاصة مفتوحة () تسمح لك بفتح ملف لقراءة أو كتابة البيانات.
توفر وظيفة الفتح () خيارات متنوعة تسمح لك بتكوين وضع فتح الملف ، مثل:
- الوضع - وضع فتح الملف (قراءة ، كتابة ، إضافة ، إلخ.)
- ترميز-ترميز الملفات
مثال على استخدام وظيفة فتح () لفتح ملف:
| ملف = فتح ("اسم الملف.النص " ، "ص") |
| # يفتح اسم الملف.النص لقراءة البيانات |
في هذا المثال ، تفتح الدالة فتح() اسم ملف الملف.النص في وضع قراءة البيانات ("ص"). هذا يعني أنه يمكنك فقط قراءة البيانات من الملف ، ولكن لا يمكنك تعديلها أو كتابتها.
في حالة عدم وجود ملف بهذا الاسم ، ستسبب الوظيفة المفتوحة() خطأ. لذلك ، قبل استخدام الوظيفة ، يجدر التحقق من وجود الملف:
| استيراد نظام التشغيل |
| إذا كان نظام التشغيل.الطريق.موجود ("اسم الملف.النص"): |
| ملف = فتح ("اسم الملف.النص " ، "ص") |
| # يفتح اسم الملف.النص لقراءة البيانات |
| آخر: |
| طباعة ("الملف غير موجود") |
في هذا المثال ، يتم استيراد وحدة نظام التشغيل أولا ، والتي توفر وظائف للعمل مع نظام التشغيل. ثم يتم التحقق من وجود الملف اسم الملف.نص . إذا كان الملف موجودا ، فإن وظيفة الفتح() تفتحه في وضع قراءة البيانات. خلاف ذلك ، يتم عرض رسالة تفيد بأن الملف غير موجود.
وبالتالي ، فإن الوظيفة المفتوحة () هي جزء لا يتجزأ من العمل مع الملفات في بايثون. يسمح لك بفتح الملفات لقراءة البيانات أو كتابتها ، بالإضافة إلى تعيين معلمات مختلفة مثل وضع الفتح والترميز.
قراءة سطر الملف بسطر باستخدام حلقة
لقراءة سطر ملف سطرا في لغة البرمجة بيثون ، يمكننا استخدام لحلقة في تركيبة مع فتح () وظيفة.
يوجد أدناه مثال على رمز يوضح كيفية قراءة سطر ملف بسطر:
اسم الملف = " ملف.النص "
مع فتح (اسم الملف ، "ص") كملف:
للخط في الملف:
طباعة (خط)
في هذا المثال ، نفتح الملف أولا باستخدام الوظيفة المفتوحة () ونحدد وضع" ص " للقراءة. ثم نستخدم العبارة مع ، والتي تغلق الملف تلقائيا في نهاية كتلة التعليمات البرمجية.
بعد ذلك ، نستخدم ل حلقة لتكرار من خلال خطوط الملف. تتم كتابة كل سطر من الملف إلى متغير الخط ، ويمكننا إجراء العمليات اللازمة مع السطر. في هذه الحالة ، نقوم ببساطة بإخراج كل سطر باستخدام وظيفة الطباعة ().
وبالتالي ، باستخدام وظيفة الحلقة والفتح () ، يمكننا بسهولة قراءة الملف سطرا بسطر. هذا النهج مناسب عندما نحتاج إلى معالجة كل صف على حدة أو إجراء عمليات معينة في كل صف.
حفظ كل صف إلى متغير
.
وحفظها إلى متغير. نتيجة لذلك ، نحصل على قائمة بخطوط الملفات ، سيتم تخزين كل منها في خلية منفصلة في القائمة.
لمعالجة كل صف بدوره. قد تتضمن خيارات المعالجة الممكنة إخراج كل صف ، وحساب متوسط الأرقام في كل صف ، وحساب عدد الصفوف ، وما إلى ذلك.
يوجد أدناه مثال على رمز يوضح حفظ كل سطر من الملف إلى متغير:
ملف = فتح ("ملف.النص " ، "ص")
خطوط = ملف.قراءة الخطوط()
للخط في الخطوط:
# معالجة السلسلة
طباعة (خط)
ملف.إغلاق()
.
وبالتالي ، فإن حفظ كل سطر من الملف في متغير منفصل يجعل من السهل معالجة وإجراء العمليات الحسابية مع كل سطر على حدة.
استبدال متغير في كل تكرار للحلقة لتخزين السطر الأخير فقط
في بعض الأحيان تحتاج إلى قراءة السطر الأخير في ملف باستخدام بايثون. إحدى الطرق البسيطة للقيام بذلك هي استخدام حلقة لقراءة كل سطر من الملف بالتتابع والكتابة فوق المتغير في كل تكرار لتخزين السطر الأخير فقط.
هنا مثال رمز يوضح هذه الطريقة:
الخط الأخير = لا شيء # تهيئة متغير لتخزين السطر الأخير
مع فتح ("ملف.النص " ، "ص") كملف:
للخط في الملف:
الخط الأخير = الخط.الشريط () # الكتابة فوق المتغير في كل تكرار
من الطباعة ("السطر الأخير من الملف:" ، السطر الأخير)
في هذا المثال ، نقوم بإنشاء متغير السطر الأخير وتهيئته بالقيمة لا شيء. ثم نفتح الملف باستخدام الوظيفة المفتوحة () ونستخدم الحلقة لقراءة كل سطر في الملف. في كل تكرار ، نقوم بالكتابة فوق متغير السطر الأخير بالسطر الحالي للملف ، وإزالة جميع المسافات غير الضرورية وأحرف السطر الجديد باستخدام طريقة الشريط ().
في نهاية الحلقة ، نحصل على السطر الأخير من الملف ، والذي تم حفظه في متغير السطر الأخير. نقوم بإخراج هذا الخط إلى الشاشة باستخدام وظيفة الطباعة ().
من المهم ملاحظة أن هذا الأسلوب قد يكون غير فعال عند قراءة الملفات الكبيرة ، حيث يتطلب تخزين كل سطر في الذاكرة حتى الوصول إلى السطر الأخير. في مثل هذه الحالات ، قد يكون الحل الأكثر فعالية هو استخدام طرق البحث عن الملفات والتنقل مثل البحث() والتل().
بشكل عام ، يعد استخدام حلقة للكتابة فوق متغير في كل تكرار طريقة سهلة لقراءة السطر الأخير في ملف باستخدام بايثون.
إخراج السطر الأخير باستخدام الطباعة ()
واحدة من أسهل الطرق لقراءة السطر الأخير في ملف باستخدام بيثون هو استخدام وظيفة الطباعة ().
لعرض السطر الأخير من الملف على الشاشة ، يمكننا استخدام عداد لتحديد عدد الأسطر التي يحتوي عليها الملف ، ثم استخدام فهرسة الصفوف لعرض السطر الأخير.
أولا ، افتح الملف باستخدام وظيفة الفتح () ، مع تحديد المسار إلى الملف ووضع "القراءة". ثم نحسب عدد الأسطر في الملف باستخدام الحلقة:
مسار الملف = " ملف.النص"
مع فتح (فيليباث، "ص") كملف:
خطوط = ملف.قراءة الخطوط()
عدد الخطوط = لين(خطوط)
بعد الحصول على عدد الأسطر ، يمكننا استخدام وظيفة الطباعة() لطباعة السطر الأخير على الشاشة. للقيام بذلك ، نحتاج إلى استخدام فهرسة الصفوف وتحديد فهرس الصف الأخير ، وهو "عدد الأسطر -1".
الخط الأخير = الخطوط [عدد الأسطر -1]
طباعة (الخط الأخير)
الآن ، إذا قمنا بتنفيذ هذا الرمز ، فسنرى السطر الأخير من الملف على الشاشة.
من المهم ملاحظة أن هذه الطريقة تعمل فقط مع الملفات ذات المحتوى النصي. إذا كان الملف يحتوي على بيانات بتنسيقات أخرى ، مثل كسف أو جسون ، فيجب استخدام طرق أخرى لمعالجة هذه البيانات بشكل صحيح.
طباعة السطر الأخير باستخدام الطباعة () هو وسيلة سهلة ومريحة للوصول إلى السطر الأخير من ملف في بيثون. ومع ذلك ، إذا كان عليك معالجة الملفات الكبيرة أو العمل مع البيانات بتنسيق مختلف ، فقد تحتاج إلى استخدام طرق أكثر تعقيدا لقراءة الملفات ومعالجتها.