ในการเปลี่ยนการควบคุมเทอร์มินัลในระบบ Unix เราสามารถใช้วิธีการที่เกี่ยวข้องกับ tty ใน Python การใช้ tty โมดูล เราสามารถตั้งค่าสองโหมดที่แตกต่างกันของเทอร์มินัล ดิบ โหมดและ cbreak โหมด
ในการใช้โมดูล tty เราควรนำเข้าโดยใช้ −
import tty
มีบางโมดูลของโมดูล tty เหล่านี้คือ −
วิธีการ tty.setraw(fd เมื่อ =termios.TCSAFLUSH)
วิธีนี้ใช้เพื่อเปลี่ยนโหมดเทอร์มินัลเป็นโหมดดิบ ในโหมด raw เคอร์เซอร์จะย้ายไปยังบรรทัดใหม่ แต่ไม่มีการดำเนินการการขึ้นบรรทัดใหม่ อีกทั้งไม่ต้องกด Return กุญแจสำคัญในการส่งข้อมูลเข้าระบบจะส่งโดยอัตโนมัติหลังจากเขียน
วิธีการ tty.setcbreak(fd เมื่อ =termios.TCSAFLUSH)
วิธีนี้ใช้เพื่อเปลี่ยนโหมดเทอร์มินัลเป็นโหมด cbreak ในโหมดนี้เคอร์เซอร์จะย้ายไปขึ้นบรรทัดใหม่โดยที่เราไม่ต้องกดปุ่ม Return เพื่อส่งข้อมูลเข้าระบบ ระบบจะส่งให้โดยอัตโนมัติหลังเขียนเสร็จ
โค้ดตัวอย่าง
import sys
import tty
import termios
file_desc = sys.stdin.fileno()
old_setting = termios.tcgetattr(file_desc)
tty.setraw(sys.stdin)
for i in range(5):
char = sys.stdin.read(1)
print("Char: " + str(char))
termios.tcsetattr(file_desc, termios.TCSADRAIN, old_setting)
ผลลัพธ์
$ python3 example.py
Char: K
Char: E
Char: 5
Char: 2
Char: @