Как явно установить размер терминала при использовании pexpect - PullRequest
7 голосов
/ 04 октября 2009

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

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

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

Ответы [ 2 ]

8 голосов
/ 08 июня 2012

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

import pexpect
child = pexpect.spawn(cmd)
child.setwinsize(400,400)
7 голосов
/ 04 октября 2009

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

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

например

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