Python中的终端控制功能

要更改Unix系统中的终端控件,我们可以在Python中使用tty相关的方法。使用tty模块,我们可以设置终端的两种不同模式。该模式和CBREAK模式。

要使用tty模块,我们应该使用-导入它

import tty

tty模块中有一些模块,它们是-

方法tty.setraw(fd,when = termios.TCSAFLUSH)

此方法用于将终端模式更改为原始模式。在原始模式下,光标移至新行,但未执行回车操作。同样,我们不需要按回车键将输入发送到系统,它会在写入后自动发送。

方法tty.setcbreak(fd,when = termios.TCSAFLUSH)

此方法用于将终端模式更改为cbreak模式。在此模式下,光标移至新行,我们无需按回车键即可将输入发送到系统,它会在写入后自动发送。

范例程式码

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: @