Python可以使用raw_input接受Ctrl + [char]吗?

时间:2014-05-30 21:44:34

标签: python user-input

我在python中编写一个接受大量用户输入的命令行界面。对于我正在查询用户的值,有大量的"附加信息"我可以显示,但只想显示用户是否需要有关如何提供值的帮助。

所以我想我会提供通常的raw_input提示,但也尝试接受一些Ctrl-H类型序列来输出此帮助信息。

Python可以通过终端/ shell中的raw_input接受这种输入吗?还有另一种更合适的方法(最好是在stdlib中)?

1 个答案:

答案 0 :(得分:0)

不,python无法通过raw_input接受此类输入。这是因为您正在考虑以下序列:Ctrl-CCtrl-Z等。这些不是键盘输入,这些信号终端(不是程序)。

您可以尝试设置信号处理程序,它将为您执行此操作,但这不是一个非常可靠的解决方案(无论您是否使用python或其他内容)。< / p>

接受此类输入的最佳解决方案是使用 curses ,或使用 readline (调整配置以处理Ctrl-H之类的内容)。使用readline将使您的生活更轻松,但它需要您在GNU GPL(或类似)下许可您的程序所需的成本。诅咒没有这种限制。