我试图用Python 3编写一个控制台程序,该程序为用户提供某种外壳程序,就像控制台中的Python 3 Shell程序一样。通过使用input()
方法,我能够相对较快地实现这一目标。但是,如果在该外壳中像在其他外壳中一样可以使用箭头键来循环浏览最近键入的命令,那就太好了。 input()
方法不提供此功能,除curses模块外,我没有找到其他简单的工具来执行此操作,该模块需要接管整个屏幕才能工作。我的方法之一是从stdin逐字节读取键入的文本,然后对照所要查找的特殊字符的代码进行检查。这很好用,但是当用户(出于某种原因)键入一个奇怪的unicode字符(其中包含中间位置的箭头键)时,会遇到问题。尽管这对我来说仍然是可以接受的解决方案,但我认为这是一个应该先解决(更好)的问题,考虑到它必须多久发生一次。