Spec-Zone.ru › Python 3.10

termios — Управление терминалом в стиле POSIX

Этот модуль предоставляет интерфейс к вызовам POSIX для управления вводом-выводом терминала. Полное описание этих вызовов см. в termios(3) справочной странице Unix. Он доступен только для тех версий Unix, которые поддерживают управление вводом-выводом терминала в стиле POSIX termios, настроенное во время установки.

Все функции в этом модуле принимают дескриптор файла fd в качестве первого аргумента. Это может быть целочисленный дескриптор файла, такой как возвращаемый sys.stdin.fileno(), или объект файла объект файла, например, sys.stdin сам по себе.

Этот модуль также определяет все константы, необходимые для работы с функциями, предоставляемыми здесь; они имеют то же имя, что и их аналоги в C. Обратитесь к документации вашей системы для получения дополнительной информации об использовании этих интерфейсов управления терминалом.

Модуль определяет следующие функции:

termios.tcgetattr(fd)

Возвращает список, содержащий атрибуты терминала для дескриптора файла fd, следующим образом: [iflag, oflag, cflag, lflag, ispeed, ospeed, cc] где cc — список специальных символов терминала (каждый — строка длиной 1, за исключением элементов с индексами VMIN и VTIME, которые являются целыми числами, когда эти поля определены). Интерпретация флагов и скоростей, а также индексация в массиве cc должны выполняться с использованием символьных констант, определённых в модуле termios.

termios.tcsetattr(fd, when, attributes)

Устанавливает атрибуты терминала для дескриптора файла fd из attributes, который представляет собой список, подобный тому, который возвращается функцией tcgetattr(). Аргумент when определяет момент изменения атрибутов: TCSANOW для изменения немедленно, TCSADRAIN для изменения после передачи всего очереди вывода, или TCSAFLUSH для изменения после передачи всего очереди вывода и удаления всей очереди ввода.

termios.tcsendbreak(fd, duration)

Отправляет сбой по дескриптору файла fd. Ноль duration отправляет сбой на 0,25–0,5 секунды; ненулевое значение duration имеет значение, зависящее от системы.

termios.tcdrain(fd)

Ожидает, пока весь вывод, записанный в дескриптор файла fd, не будет передан.

termios.tcflush(fd, queue)

Удаляет данные из очереди по дескриптору файла fd. Селектор queue указывает, какую очередь: TCIFLUSH для очереди ввода, TCOFLUSH для очереди вывода или TCIOFLUSH для обеих очередей.

termios.tcflow(fd, action)

Приостанавливает или возобновляет ввод или вывод по дескриптору файла fd. Аргумент action может быть TCOOFF для приостановки вывода, TCOON для перезапуска вывода, TCIOFF для приостановки ввода или TCION для перезапуска ввода.

См. также

Module tty

Функции-утилиты для выполнения общих операций управления терминалом.

Пример

Вот функция, которая запрашивает пароль с отключенным отображением. Обратите внимание на технику использования отдельного вызова tcgetattr() и оператора try … finally, чтобы гарантировать, что старые атрибуты терминала восстанавливаются точно независимо от того, что происходит:

def getpass(prompt="Password: "):
    import termios, sys
    fd = sys.stdin.fileno()
    old = termios.tcgetattr(fd)
    new = termios.tcgetattr(fd)
    new[3] = new[3] & ~termios.ECHO          # lflags
    try:
        termios.tcsetattr(fd, termios.TCSADRAIN, new)
        passwd = input(prompt)
    finally:
        termios.tcsetattr(fd, termios.TCSADRAIN, old)
    return passwd

© 2001–2023 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.10/library/termios.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API