Python 如何以编程方式输入telnet的转义字符?

Python 如何以编程方式输入telnet的转义字符?,python,ssh,escaping,telnet,paramiko,Python,Ssh,Escaping,Telnet,Paramiko,我正在使用paramiko将ssh连接到远程机器,到目前为止,这一切似乎都运行良好 client.connect(主机名,端口=ssh\u端口,用户名=username,key\u文件名=key\u fname,密码=password) 现在,从远程机器开始,我需要更深入地使用 stdin、stdout、stderr=client.exec\u命令('telnet localhost%d'%port) 似乎给了我正确的手柄来开始使用stdin.write进行交谈 我的问题是,当我完成时,我不知道

我正在使用paramiko将ssh连接到远程机器,到目前为止,这一切似乎都运行良好

client.connect(主机名,端口=ssh\u端口,用户名=username,key\u文件名=key\u fname,密码=password)

现在,从远程机器开始,我需要更深入地使用

stdin、stdout、stderr=client.exec\u命令('telnet localhost%d'%port)

似乎给了我正确的手柄来开始使用
stdin.write进行交谈

我的问题是,当我完成时,我不知道如何正确地退出telnet。如果我手动操作,我可以进入telnet并看到:
转义字符是“^]”。
我可以使用键盘上的
Ctrl+]
,然后会弹出一个小菜单说

Console escape. Commands are:

 l  go to line mode
 c  go to character mode
 z  suspend telnet
 e  exit telnet
然后我可以按“e”键退出(无需按“回车”键即可立即退出)

但是当我在脚本中尝试这样做时,通过
stdin.write('^]e')
stdin.write('\^]e')
stdin.write('\c]e')
stdin.write('\M-\c-]e')
,等等。。我一直在
stdout.read()
中看到我的脚本按字面意思输入了这些字符。在
]
e
之间放置一点
时间。睡眠(0.1)
似乎没有帮助


如何以编程方式输入转义序列?

我终于解决了这个问题

简短的回答是:
'\x1d'

这是弹出小菜单的转义序列。我通过
curses
模块找到了这个:

from curses.ascii import ctrl
print ctrl(']')