Как установить явно размер терминала при использовании 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) 
  • зацикливание некоторого ips из файла в python?
  • Python, как читать вывод из дочернего элемента pexpect?
  • pxssh бросает конец файла (EOF). Исключение исключения в стиле исключения
  • Несколько входов и выходов в подпроцессе python
  • Pexpect и PyCharm - Несоответствующий ioctl для устройства
  • python pexpect: SSHing затем обновляет дату
  • Выполнить команду и получить ее stdout, stderr отдельно в почти реальном времени, как в терминале
  • ткань против pexpect
  • Python - лучший язык программирования в мире.