ในการเปลี่ยนการควบคุมเทอร์มินัลในระบบ 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: @