Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีล้างหน้าจอคอนโซลด้วย Python

เมื่อทำงานกับ Python interactive shell/terminal เราจะได้รับผลลัพธ์ต่อเนื่องจนหน้าจอลูบง่าย ไม่เห็นผลลัพธ์ชัดเจน มักใช้ Ctrl+L เพื่อล้างหน้าจอ

แต่ถ้าต้องการล้างหน้าจอขณะรันสคริปต์ Python ไม่มีคีย์เวิร์ด ฟังก์ชัน หรือเมธอด built-in สำหรับล้างหน้าจอ จึงต้องเขียนโค้ดเอง

ขั้นตอนการล้างหน้าจอ

  1. นำเข้า system จากโมดูล os
  2. กำหนดฟังก์ชัน
  3. เรียกคำสั่งระบบด้วย 'clear' ใน Linux/macOS และ 'cls' ใน Windows
  4. เก็บค่าที่คืนไว้ในตัวแปร (มักใช้ underscore _ เพราะ Python shell เก็บผลลัพธ์ล่าสุดไว้ใน _)
  5. เรียกใช้ฟังก์ชัน

ตัวอย่างโค้ด: ใช้โมดูล os

from os import system, name
from time import sleep

# กำหนดฟังก์ชันล้างหน้าจอ
def screen_clear():
    if name == 'nt':  # Windows
        _ = system('cls')
    else:  # macOS และ Linux (os.name คือ 'posix')
        _ = system('clear')

# พิมพ์ข้อความทดสอบ
print('Hi !! I am Python\n' * 10)
sleep(2)

# เรียกใช้ฟังก์ชันล้างหน้าจอ
screen_clear()

ตัวอย่างโค้ด: ใช้โมดูล subprocess

import os
from subprocess import call
from time import sleep

def screen_clear():
    _ = call('clear' if os.name == 'posix' else 'cls')

print('Hi !! I am Python\n' * 10)
sleep(2)
screen_clear()

ผลลัพธ์

โปรแกรมจะพิมพ์ "Hi !! I am Python" 10 บรรทัด รอ 2 วินาที แล้วล้างหน้าจอ ทำให้เห็นเฉพาะพรอมต์คำสั่ง

หมายเหตุ: วิธีนี้ทำงานได้ในเทอร์มินัล/คอมมานด์ไลน์จริง แต่อาจไม่ทำงานในบาง IDE เช่น IDLE หรือ Jupyter Notebook