Python,是否有可能采用pexpect sendline输出并在其上添加一个contion?

时间:2013-10-24 15:31:19

标签: python ssh pexpect

我有一个问题,我找不到答案。

我使用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”

我已经知道如何在日志文件中保存所有输出。属性之前和之后也没有帮助我。 提前谢谢。

1 个答案:

答案 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()

手动获得控制权