נפתרה: כתוב פלט מסוף באותו מקום

העדכון אחרון: 09/11/2023

כתיבת פלט מסוף באותו מקום יכולה להיות טכניקה שימושית למפתחים בעת עבודה עם יישומי Python, במיוחד בעת פיתוח ממשקי משתמש בשורת הפקודה, יצירת מחווני התקדמות ועדכון נתוני המסוף בזמן אמת. מאמר זה ידון בפתרון להחלפת פלט המסוף, יסביר את הקוד שלב אחר שלב ויצלול לספריות ספציפיות ופונקציות Python מובנות שמאפשרות את המשימה הזו.

כדי להשיג זאת, אנו יכולים להשתמש בספריית Python המפורסמת "קללות" אשר תוכננה במיוחד ליצירת יישומים מבוססי מסוף התלויים מאוד בשימוש בממשקי משתמש מבוססי טקסט. עם זאת, למטרת פשטות וקלות הבנה, נשתמש במודולי "sys" ו-"time" המובנים של Python כדי להחליף את יציאות הקונסולה.

החלפת פלט מסוף ב-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.

הודעות קשורות: