Spec-Zone.ru › Python 3.7

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

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

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

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

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

termios.tcgetattr(fd)

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

termios.tcsetattr(fd, when, attributes)

Устанавливает атрибуты tty для дескриптора файла 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, чтобы гарантировать, что старые атрибуты tty восстанавливаются точно независимо от того, что происходит:

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.7/library/termios.html

Spec-Zone.ru

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