python中所有键盘键的转义序列

时间:2011-06-16 11:00:07

标签: python

我在python中使用telnetlib ... 我使用'\ r'表示输入键,'\ t'表示TAB。 和这个场景一样,我想要SHIFT,PAGE UP,PAGE DOWN,F1,F2 ... F12的char序列。 请求帮助我解决这个问题,因为我必须在我的代码中使用所有这些键盘键。

import telnetlib

HOST = "localhost"
user = raw_input("Enter your remote account: ")
password = getpass.getpass()

tn = telnetlib.Telnet(HOST)

tn.write("ls\n")
tn.write("exit\n")
tn.write("\r") #this is for enter
tn.write("\t") # this is for tab

#what should be here to other keys..pls

print tn.read_all()

2 个答案:

答案 0 :(得分:0)

不幸的是,并非所有按键操作都会导致通过线路发送一个或多个字节。这实际上是关于终端仿真,因为控制键“意味着”由终端设备(或仿真器)解释。

不同的终端类型定义不同的密钥并将它们映射到流中的不同字节值。例如,有些终端有F11和F12,有些则没有。有些定义了Ctrl + F键,Shift + F键,Alt + F键,Command + F键;别人不这样做。并且不同的终端将这些密钥映射到线路上完全不同的字节序列。当涉及到箭头键和光标模式键(如insert。

)时,问题是相同的

您可能会发现某些密钥被客户端捕获而根本没有传输,或者非键盘事件(例如使用鼠标调整终端窗口大小)会传输终端转义序列。

答案 1 :(得分:0)