我使用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)
如果命令返回大量行,则输出返回空。 我检查了是否有可以设置的最大读数,但即使这样也没有帮助我。
有人能告诉我这里可以做些什么吗?
答案 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