使用pexpect时如何明确设置终端大小

JS_*_*bad 7 python linux pexpect

我有一个ncurses应用程序,它在启动时检查终端大小,如果不适合则立即退出.

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

我想用pexpect自动化ncurses应用程序,但是因为它认为通过pexpect启动时终端大小小于所需的终端大小,所以它不会运行.有什么方法可以在启动时明确指定pexpect的终端大小?

rag*_*ags 8

您还可以使用:

import pexpect
child = pexpect.spawn(cmd)
child.setwinsize(400,400)
Run Code Online (Sandbox Code Playgroud)


Nic*_*ood 7

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

Pexpect会将环境传递给子任务,并且一些(所有?)curses程序在启动之前读取这些环境变量.

例如

import os
os.environ['LINES'] = "25"
os.environ['COLUMNS'] = "80"
# run pexpect stuff as before
Run Code Online (Sandbox Code Playgroud)