2009-10-04 150 views
5

我有一个ncurses应用程序,它在启动时检查终端大小,如果不适合,会立即退出。如何在使用pexpect时明确设置终端大小

在Linux中,默认大小是80x24,这个应用程序至少需要25个。修复很简单,我只是在运行ncurses应用程序之前调整终端仿真窗口(在X中)。

我想用pexpect自动化ncurses应用程序,但是我陷入了困境,因为它认为终端尺寸比通过pexpect启动时所需的小,因此它不会运行。任何方式在启动时明确指定pexpect的终端大小?

回答

5

在使用pexpect之前,请尝试设置LINES和COLUMNS环境变量。

Pexpect会将环境传递给子任务,并且一些(all?)curses程序在开始之前读取这些环境变量。

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

谢谢你,它的工作。 – 2009-10-04 11:54:23

3

您还可以使用:

import pexpect 
child = pexpect.spawn(cmd) 
child.setwinsize(400,400) 
相关问题