当输出超过2000行时,pexpect child.before为空

时间:2015-02-06 16:26:14

标签: python python-3.x pexpect

我使用pexpect模块和Python3.4在junos路由器中自动执行一些命令。 我已成功进入路由器并执行命令。但是,我想将命令show configuration | display sets | no more的输出保存在child.before变量中,但它是空的。如果输出只有几行,Child.before会正确填充。但是在这里,输出大约是2000行。

我使用的代码是:

self.child.sendline('show configuration | display set | no-more')
self.child.expect('>')
output = self.child.before
print(output)

如果命令返回大量行,则输出返回空。 我检查了是否有可以设置的最大读数,但即使这样也没有帮助我。

有人能告诉我这里可以做些什么吗?

1 个答案:

答案 0 :(得分:0)

pexpect可以阅读超过2000行:

#!/usr/bin/env python
import sys
import pexpect  # $ pip install pexpect

child = pexpect.spawn(sys.executable, ['-c', """
for i in range(4000): # print lines
    print(str(i) * 200)
print('>')
print('end')
"""])
child.expect(b'>')
print(len(child.before.splitlines()))
# -> 4000