Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从当前终端克隆pexpect winsize?_Python_Perl_Expect_Pexpect - Fatal编程技术网

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

Python 如何从当前终端克隆pexpect winsize?,python,perl,expect,pexpect,Python,Perl,Expect,Pexpect,在Perl的expect模块中,我可以执行以下操作: my $login = new Expect; $login->slave->clone_winsize_from(\*STDIN); Python中的等价物是什么?我看到了child.setwinsize(行、列)的一个选项,但是如何像在Perl中一样从STDIN克隆它呢?您可以使用raw\u input(),readline()或sys.STDIN.readline(),这取决于您获取STDIN的方式。所以我找到了如何做到这

在Perl的expect模块中,我可以执行以下操作:

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

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

您可以使用
raw\u input()
readline()
sys.STDIN.readline()
,这取决于您获取STDIN的方式。

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

rows, cols = map(int, os.popen('stty size', 'r').read().split())
child.setwinsize(rows, cols)
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:')