Python中所有键盘按键的转义序列

0 投票
2 回答
2816 浏览
提问于 2025-04-16 19:41

我在用Python的telnetlib库……我用'\r'来表示回车键,用'\t'来表示TAB键。像这样的情况,我想知道SHIFT、PAGE UP、PAGE DOWN、F1、F2……F12这些键的字符序列是什么。请帮我解决这个问题,因为我需要在我的代码中使用这些键。

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

你可以选择使用这个telnet客户端: https://www.redhat.com/archives/redhat-list/2000-August/msg00070.html

0

很遗憾,并不是所有的按键都会发送一个或多个字节的数据。这其实和终端模拟有关,因为控制键是“设计”给终端设备(或者模拟器)来解释的。

不同类型的终端定义了不同的按键,并把它们映射到数据流中的不同字节值。例如,有些终端有F11和F12键,而有些则没有。有的定义了Ctrl+F键、Shift+F键、Alt+F键、Command+F键,而有的则没有。而且,不同的终端将这些按键映射到完全不同的字节序列上。对于箭头键和像插入键这样的光标模式键,情况也是一样的。

你可能会发现某些按键被客户端拦截,根本没有发送出去,或者一些非键盘事件(比如用鼠标调整终端窗口大小)会发送终端转义序列。

撰写回答