如何从当前终端克隆pexpect winsize?

时间:2013-05-29 01:47:58

标签: python perl expect pexpect

在Perl的expect模块中,我可以这样做:

my $login = new Expect;
$login->slave->clone_winsize_from(\*STDIN);

Python中的等价物是什么?我看到了child.setwinsize(行,列)的一个选项,但是如何从STDIN克隆它,就像我在Perl中可以做到的那样?

3 个答案:

答案 0 :(得分:0)

您可以使用raw_input()readline()sys.stdin.readline(),具体取决于您获取标准输入的方式。

答案 1 :(得分:0)

所以我发现了如何做到这一点:

rows, cols = map(int, os.popen('stty size', 'r').read().split())
child.setwinsize(rows, cols)

答案 2 :(得分:0)

Tks @nerdinary,

对我有用:

stconn = 'ssh -o StrictHostKeyChecking=no -o ForwardX11=no root@server'    
conn = pexpect.spawn(stconn, encoding='utf-8')
conn.timeout = 10
rows, cols = map(int, os.popen('stty size', 'r').read().split())
conn.setwinsize(rows, cols)
conn.expect('password:')