pythonpexpect如何从原始输出中获取linux命令行文本

2024-09-30 02:14:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我见过许多其他的例子,其中没有一个涵盖了我想做的事情。我使用Pexpect来运行ssh命令(我知道有pxsh,但它并没有完成我需要的一切)。我得到的终端输出是

'\r\r\n\x1b]0;user@gateway: ~\x07user@gateway:~$'

打印此字符串时,它会正确显示

user@gateway:~$

如何将其处理为屏幕上显示的相同文本。我尝试重新定向打印的标准输出,但它仍然有另一个转义文本。我尝试过使用正则表达式过滤VT-100命令的例子,但它仍然有user@gateway两次我只想要通常显示给用户的相同文本。任何见解都非常有用。多谢各位


Tags: 字符串文本命令终端屏幕事情sshgateway
1条回答
网友
1楼 · 发布于 2024-09-30 02:14:53

您需要知道提示字符串的含义。下面使用三重引号字符串进行说明:

promptRaw = '\r\r\n\x1b]0;user@gateway: ~\x07user@gateway:~$'

'''
promptRaw explanation:

Characters in promptRaw     Meaning               ( Format )
           -        -                    
\r\r\n                      CR CR LF              ( <string> )
\x1b]0;user@gateway: ~\x07  Icon and Window Title ( ESC ] 0 ; <string> BEL )
user@gateway:~$             prompted text         ( <string> )

'''

print(promptRaw.__repr__())

promptStr = promptRaw.split('\x07')[-1]

print(promptStr.__repr__())

输出.\SO\61416565.py

'\r\r\n\x1b]0;user@gateway: ~\x07user@gateway:~$'
'user@gateway:~$'

相关问题 更多 >

    热门问题