2009-10-04 4 views
5

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

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

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

ответ

5

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

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

например

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

Спасибо, это сработало. –

3

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

import pexpect 
child = pexpect.spawn(cmd) 
child.setwinsize(400,400)