يمكن أن تكون كتابة مخرجات وحدة التحكم في نفس المكان تقنية مفيدة للمطورين عند العمل مع تطبيقات Python، خاصة عند تطوير واجهات المستخدم في سطر الأوامر، وإنشاء مؤشرات التقدم، وتحديث بيانات وحدة التحكم في الوقت الفعلي. ستناقش هذه المقالة حلاً للكتابة فوق مخرجات وحدة التحكم، وشرح الكود خطوة بخطوة، والتعمق في مكتبات محددة ووظائف Python المضمنة التي تجعل هذه المهمة ممكنة.
ولتحقيق ذلك، يمكننا استخدام "لعنات" مكتبة بايثون الشهيرة والتي تم تصميمها خصيصًا لإنشاء تطبيقات طرفية تعتمد بشكل كبير على استخدام واجهات المستخدم القائمة على النص. ومع ذلك، لغرض التبسيط وسهولة الفهم، سوف نستخدم وحدات "sys" و"time" المضمنة في Python للكتابة فوق مخرجات وحدة التحكم.
الكتابة فوق إخراج وحدة التحكم في بيثون
الفكرة الرئيسية هي استخدام ملف sys.stdout.write() وظيفة، والتي تسمح لنا بالطباعة في نفس السطر، جنبا إلى جنب مع إرجاع الحرف ("r") للعودة إلى بداية السطر، مما يسمح لنا بالكتابة فوق الإخراج بشكل فعال.
فيما يلي مثال على الكتابة فوق مخرجات وحدة التحكم باستخدام Python:
import time import sys for i in range(10): sys.stdout.write("rStep: %d" % i) sys.stdout.flush() time.sleep(1)
شرح المدونة خطوة بخطوة
1. أولاً، قم باستيراد الوحدات المطلوبة:
import time import sys
ال الوقت سيتم استخدام الوحدة لإضافة تأخير بين التكرارات، و SYS سيتم استخدام الوحدة لكتابة الإخراج إلى وحدة التحكم.
2. بعد ذلك، أنشئ حلقة للتكرار على نطاق من الأرقام، لمحاكاة عداد التقدم:
for i in range(10):
تتكرر هذه الحلقة من 0 إلى 9، ويتم تشغيلها بشكل فعال عشر مرات.
3. داخل الحلقة، استخدم sys.stdout.write() وظيفة لطباعة رقم التكرار الحالي مع التسمية:
sys.stdout.write("rStep: %d" % i)
الحرف "r" هو حرف الإرجاع الذي يعمل بمثابة إعادة تعيين إلى بداية السطر، مما يسمح للمخرج التالي بالكتابة فوق المخرج الحالي.
4. تأكد من الاستخدام sys.stdout.flush () بعد الكتابة إلى وحدة التحكم:
sys.stdout.flush()
تقوم الدالة Flush() بمسح المخزن المؤقت الداخلي وتضمن عرض الإخراج على الفور.
5. وأخيرًا، قم بإضافة تأخير باستخدام وقت النوم() وظيفة:
time.sleep(1)
سيستمر هذا الإيقاف المؤقت لمدة ثانية واحدة، مما يسهل مراقبة الإخراج الذي يتم الكتابة فوقه.
يمكنك الآن رؤية كيفية الكتابة فوق مخرجات وحدة التحكم في كل تكرار.
نظرة عامة على مكتبة "sys".
ال SYS المكتبة عبارة عن وحدة Python مدمجة قوية توفر الوصول إلى الأجزاء الداخلية للمترجم الفوري والمعلمات المختلفة الخاصة بالنظام. في هذه المقالة، ركزنا على استخدام sys.stdout.write() و sys.stdout.flush () وظائف للكتابة فوق إخراج وحدة التحكم. ومع ذلك، توفر مكتبة "sys" العديد من الوظائف الأخرى، مثل وسائط سطر الأوامر، والترتيب الثانوي، والاستثناءات، والمسارات المحددة مسبقًا.
نظرة عامة على مكتبة "الزمن".
ال الوقت المكتبة هي وحدة Python مدمجة أخرى تقدم مجموعة متنوعة من الوظائف المتعلقة بمعالجة الوقت ومعالجته. في مثالنا، استخدمنا وقت النوم() وظيفة لإنشاء تأخير بين التكرارات. توفر مكتبة "الوقت" أيضًا أدوات أخرى لقياس وقت التنفيذ والتحويل بين تنسيقات الوقت والحصول على الوقت الحالي. هذه الوحدة ضرورية للمطورين الذين يعملون مع الوظائف المرتبطة بالوقت أو جدولة المهام في تطبيقات Python.