【发布时间】:2013-08-16 15:55:21
【问题描述】:
我正在准备一个非常简单的脚本,我需要用户输入某些值。在某个时刻,如果用户输入是 DELETE 键(用户按 DELETE 然后 Enter),我想提供重用现有值或删除它的机会,但我似乎无法找到令人满意的答案(我觉得这很令人惊讶...)它只是一个辅助脚本,所以我试图避免使用更高级的东西,例如 PyHook 和类似的东西。
这是我感兴趣的块:
if reusable_params:
for key in list(k for k in config_dict.keys() if k not in ["mac", "base_url", "command_name"]):
msg = "Enter new value for parameter {0}. Press ENTER to reuse the previous {1}. Press DELETE+ENTER to remove this key.".format(key, config_dict[key])
input = unicode(raw_input(msg).strip().decode(sys.stdin.encoding))
logging.debug("input: %s, len(input) %s" % (input, len(input))
按 DELETE+Enter 会返回一个 unicode 的 4 个字符的字符串:
提前谢谢你!
【问题讨论】:
-
raw_input无法捕获单个击键(显然 Enter 键除外)。如果你真的想保持你的脚本简单,你最好的选择是放弃这个功能,转而使用一个更易于处理的功能(即按 Enter 而不输入任何输入以显示以前输入的命令列表,再次按 Enter 执行最后一条命令)
标签: python input console-application special-characters