Skip to main content
 首页 » 编程设计

python之使用 pexpect 检测 bash 输出的结尾

2025年05月04日25jillzhang

我正在使用 pexpect 来运行 bash 实例:

bash = pexpect.spawn("/bin/bash") 

我希望能够“期待”这个输出的结束。目前我正在使用以下内容:

bash.sendline("ls -ltr") 
lines = [] 
while True: 
    try: 
        bash.expect("\r\n", timeout=0.1) 
        lines.append(bash.before) 
    except pexpect.TIMEOUT: 
        print "TO" 
        break 

这是有效的,但似乎无需等待 pexpect.TIMEOUT 即可检测到输出结束的效率更高。

请您参考如下方法:

您应该期待您的提示。 假设你的提示是“s”,你的代码应该是:

bash.expect(">") 

或者甚至先为您的提示设置一个变量(以防您稍后想要更改您的提示;))

prompt = ">" 
bash.expect(prompt)