print输出结果与预期不一致

题目描述

最近在学习pexpect模块时遇到一个预期之外的问题,问题挺简单,就是标题
Python版本为3.8.13,运行环境为Rocky Linux 8.5

相关代码

import pexpect


host = '192.168.201.106'
password = r'123.com'
cmd = pexpect.spawn(f'ssh {host}', timeout=2, encoding='utf-8')
cmd.expect('password:')
print('-------------')
print(f'before:{cmd.before}')
# print(f'read:{cmd.read()}')
cmd.sendline(password)
# cmd.expect('#')
# cmd.sendline('hostname')
cmd.sendintr()
# print(cmd.read())

你期待的结果是什么?实际看到的错误信息又是什么?

运行之后输出为:
-------------
root@192.168.201.106's

但是根据代码来看,为什么输出会少了前面的'before:'字符串呢?
理想的输出为:
-------------
before:root@192.168.201.106's

补充

通过此种方法可以实现前面想要的效果

print('before:'+cmd.before)
阅读 1k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题