tty — Terminal-Steuerfunktionen

Quellcode: Lib/tty.py


Das Modul tty definiert Funktionen, um das TTY in den cbreak- und raw-Modus zu versetzen.

Da es das Modul termios benötigt, funktioniert es nur unter Unix.

Das Modul tty definiert die folgenden Funktionen

tty.cfmakeraw(mode)

Konvertiert die TTY-Attributliste mode, die eine Liste ist, wie sie von termios.tcgetattr() zurückgegeben wird, in die eines TTY im Raw-Modus.

Hinzugefügt in Version 3.12.

tty.cfmakecbreak(mode)

Konvertiert die TTY-Attributliste mode, die eine Liste ist, wie sie von termios.tcgetattr() zurückgegeben wird, in die eines TTY im Cbreak-Modus.

Dadurch werden die lokalen Modus-Flags ECHO und ICANON in mode gelöscht und die minimale Eingabe auf 1 Byte ohne Verzögerung gesetzt.

Hinzugefügt in Version 3.12.

Geändert in Version 3.12.2: Das Flag ICRNL wird nicht mehr gelöscht. Dies entspricht dem Verhalten von stty cbreak unter Linux und macOS und dem, was setcbreak() historisch getan hat.

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

Ändert den Modus des Dateideskriptors fd auf Raw. Wenn when weggelassen wird, ist der Standardwert termios.TCSAFLUSH und wird an termios.tcsetattr() übergeben. Der Rückgabewert von termios.tcgetattr() wird gespeichert, bevor fd in den Raw-Modus versetzt wird; dieser Wert wird zurückgegeben.

Geändert in Version 3.12: Der Rückgabewert sind nun die ursprünglichen TTY-Attribute anstelle von None.

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

Ändert den Modus des Dateideskriptors fd auf Cbreak. Wenn when weggelassen wird, ist der Standardwert termios.TCSAFLUSH und wird an termios.tcsetattr() übergeben. Der Rückgabewert von termios.tcgetattr() wird gespeichert, bevor fd in den Cbreak-Modus versetzt wird; dieser Wert wird zurückgegeben.

Dadurch werden die lokalen Modus-Flags ECHO und ICANON gelöscht und die minimale Eingabe auf 1 Byte ohne Verzögerung gesetzt.

Geändert in Version 3.12: Der Rückgabewert sind nun die ursprünglichen TTY-Attribute anstelle von None.

Geändert in Version 3.12.2: Das Flag ICRNL wird nicht mehr gelöscht. Dies stellt das Verhalten von Python 3.11 und früher wieder her und entspricht dem, was Linux, macOS & BSDs in ihren stty(1)-Manpages bezüglich des Cbreak-Modus beschreiben.

Siehe auch

Modul termios

Low-Level-Schnittstelle zur Terminalsteuerung.