Как установить явно размер терминала при использовании pexpect

У меня есть приложение ncurses, которое проверяет размер терминала при запуске и немедленно выходит, если оно не подходит.

В Linux размер по умолчанию составляет 80×24, для этого приложения требуется не менее 25. Исправить это легко, я просто изменяю размер окна эмуляции терминала (в X) до запуска приложения ncurses.

Я хотел бы автоматизировать приложение ncurses с pexpect, но я застреваю, потому что он считает размер терминала меньше, чем требуется при запуске через pexpect, поэтому он не запускается. Любой способ указать размер терминала с pexpect явно при запуске?

2 Solutions collect form web for “Как установить явно размер терминала при использовании pexpect”

Попробуйте установить переменные среды LINES и COLUMNS перед использованием pexpect.

Pexpect передает среду в подзадачу, а некоторые (все?) Проклятые программы читают эти переменные среды перед запуском.

например

import os os.environ['LINES'] = "25" os.environ['COLUMNS'] = "80" # run pexpect stuff as before 

Вы также можете использовать:

 import pexpect child = pexpect.spawn(cmd) child.setwinsize(400,400) 
  • pxssh бросает конец файла (EOF). Исключение исключения в стиле исключения
  • python pexpect & pxssh с sudo и EOF
  • pexpect отправить перемещение курсора
  • Извлечение stderr из pexpect
  • Несколько входов и выходов в подпроцессе python
  • Как заставить Fabric автоматически (вместо интерактивного взаимодействия) взаимодействовать с командами оболочки? Объединить с pexpect?
  • Проверить файл на ssh
  • pexpect не может передать ввод более чем на 1024 символа?
  • зацикливание некоторого ips из файла в python?
  • библиотеки python для обработки ssh
  • Пиктограммы python pexpect sendcontrol
  • Python - лучший язык программирования в мире.