如何使用 pexpect 处理 30 分钟内显示的巨大输出
How to handle huge output displayed within 30 minutes before expecting prompt with pexpect
我正在尝试用 pexpect
编写一个脚本,我需要在 30 分钟内获取大量输出,然后才能得到提示。
child.sendline('abc')
child.expect('.*:abc.*')
child.sendline('test')
# child.timeout=1500
# There will be huge output displayed for 30 minutes here
child.expect('.*:abc.*', timeout=1500)
status = child.after
print status
尝试保留 child.timeout
,但无济于事。
尝试使用 child.expect
传递超时,但没有帮助。
当输出很大并且到达提示所需的时间大约为 30 分钟时,有什么方法可以让我期待一些提示吗?
EOF 异常意味着您的子进程在您的命令超时之前退出。要处理这种情况,您可以提供期望列表并分别处理每个期望的逻辑
result = child.expect(['.*:abc.*', pexpect.TIMEOUT, pexpect.EOF], timeout=1500)
if result == 1:
# code to handle case where the expected string .*:abc.* was caught
if result == 2:
# code to handle timeout exception
if result == 3:
# code to handle EOF exception
我正在尝试用 pexpect
编写一个脚本,我需要在 30 分钟内获取大量输出,然后才能得到提示。
child.sendline('abc')
child.expect('.*:abc.*')
child.sendline('test')
# child.timeout=1500
# There will be huge output displayed for 30 minutes here
child.expect('.*:abc.*', timeout=1500)
status = child.after
print status
尝试保留 child.timeout
,但无济于事。
尝试使用 child.expect
传递超时,但没有帮助。
当输出很大并且到达提示所需的时间大约为 30 分钟时,有什么方法可以让我期待一些提示吗?
EOF 异常意味着您的子进程在您的命令超时之前退出。要处理这种情况,您可以提供期望列表并分别处理每个期望的逻辑
result = child.expect(['.*:abc.*', pexpect.TIMEOUT, pexpect.EOF], timeout=1500)
if result == 1:
# code to handle case where the expected string .*:abc.* was caught
if result == 2:
# code to handle timeout exception
if result == 3:
# code to handle EOF exception