เมื่อทำงานกับ Python interactive shell/terminal เราจะได้รับผลลัพธ์ต่อเนื่องจนหน้าจอลูบง่าย ไม่เห็นผลลัพธ์ชัดเจน มักใช้ Ctrl+L เพื่อล้างหน้าจอ
แต่ถ้าต้องการล้างหน้าจอขณะรันสคริปต์ Python ไม่มีคีย์เวิร์ด ฟังก์ชัน หรือเมธอด built-in สำหรับล้างหน้าจอ จึงต้องเขียนโค้ดเอง
ขั้นตอนการล้างหน้าจอ
- นำเข้า
systemจากโมดูลos - กำหนดฟังก์ชัน
- เรียกคำสั่งระบบด้วย
'clear'ใน Linux/macOS และ'cls'ใน Windows - เก็บค่าที่คืนไว้ในตัวแปร (มักใช้ underscore
_เพราะ Python shell เก็บผลลัพธ์ล่าสุดไว้ใน_) - เรียกใช้ฟังก์ชัน
ตัวอย่างโค้ด: ใช้โมดูล 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