Spec-Zone.ru › Python 3.6

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

Этот модуль предоставляет интерфейс к вызовам POSIX для управления вводом-выводом терминала. Полное описание этих вызовов см. в справочной странице Unix termios(3). Он доступен только для версий 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. Значение 0 для 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

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

35.6.1. Пример

Вот функция, которая запрашивает пароль с отключенным отображением. Обратите внимание на технику использования отдельного вызова 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–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.6/library/termios.html

Spec-Zone.ru

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