Spec-Zone.ru › Python 2.7

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

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

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

1. Пример

Вот функция, которая запрашивает пароль с выключенным отображением. Обратите внимание на технику использования отдельного вызова 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 = raw_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/2.7/library/termios.html

Spec-Zone.ru

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