我有一个问题,我找不到答案。
我使用Python pexpect模块通过ssh连接到子应用程序,然后执行“ls”,“history”等命令。我需要帮助,做一些操作,比如检索sendline输出并检查它是否包含特定的String链或其他类似的操作。 有人可以帮帮我吗?
这是我使用的代码的一个简单示例:
child = pexpect.spawn('ssh -l karaf -p 8101 localhost')
child.logfile = open("/home/user/python_HR/logs.txt", "w")
child.expect('password:')
child.sendline(mypassword)
child.sendline(command1)
这里我需要执行一个“if”来检查child.sendline(command1)的结果是否包含字符串chaine“test”
我已经知道如何在日志文件中保存所有输出。属性之前和之后也没有帮助我。 提前谢谢。
答案 0 :(得分:0)
既然您正在使用EOF,那么您可以使用以下代码:
index = pexpect.expect(['test', pexpect.EOF, pexpect.TIMEOUT])
if index == 0:
do_something()
elif index == 1:
print(pexpect.before)
elif index == 1:
print(pexpect.before)
我希望如果您希望EOF能够使用.before属性。
或者: 您可以执行该命令并将其输出管道传输到文件,然后下载该文件并在本地使用它。
如果您愿意,可以使用pexpect.interact()
手动获得控制权