Để thay đổi điều khiển terminal trong hệ thống Unix, ta có thể dùng các phương thức liên quan tty trong Python. Sử dụng module tty, ta có thể thiết lập hai chế độ khác nhau của terminal: chế độ raw (thô) và chế độ cbreak.
Để dùng module tty, nên nhập bằng:
import tty
Một số phương thức của module tty:
Phương thức tty.setraw(fd, when = termios.TCSAFLUSH)
Thay đổi chế độ terminal sang raw mode. Ở raw mode, con trỏ di chuyển xuống dòng mới nhưng không thực hiện thao tác carriage return (quay đầu dòng). Cũng không cần nhấn phím Return (Enter) để gửi đầu vào vào hệ thống, nó tự động gửi sau khi gõ.
Phương thức tty.setcbreak(fd, when = termios.TCSAFLUSH)
Thay đổi chế độ terminal sang cbreak mode. Ở chế độ này, con trỏ di chuyển xuống dòng mới, không cần nhấn Return để gửi đầu vào, tự động gửi sau khi gõ.
Mã ví dụ
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("Ký tự: " + str(char))
termios.tcsetattr(file_desc, termios.TCSADRAIN, old_setting)
Kết quả
$ python3 example.py Ký tự: K Ký tự: E Ký tự: 5 Ký tự: 2 Ký tự: @