我正在用python编写程序,用户需要通过命令行来处理程序。我正在使用raw_input从用户获取命令。我想要像bash等那样拥有“内存”,所以,如果你在键盘上按下一个箭头(向上或向下),就会得到上一个/下一个命令。我知道一个办法做到这一点(简单地得到由用户输入的每一个字符,并检查它),但也许你知道的东西更好/更可爱:-)Python中的历史命令行
问候
我正在用python编写程序,用户需要通过命令行来处理程序。我正在使用raw_input从用户获取命令。我想要像bash等那样拥有“内存”,所以,如果你在键盘上按下一个箭头(向上或向下),就会得到上一个/下一个命令。我知道一个办法做到这一点(简单地得到由用户输入的每一个字符,并检查它),但也许你知道的东西更好/更可爱:-)Python中的历史命令行
问候
如果我知道你想什么,你可以只需导入readline
模块即可实现。这将修改raw_input()
的行为,使其在历史和行编辑方面更像python交互式shell。
不过要小心,有可能构建Python没有readline
所以我建议将其导入一个try块内:
try:
import readline
except:
pass #readline not available
是的,这正是我想要的,谢谢! – sokoli 2013-03-14 17:40:21
内置readline module提供此功能。
为什么不把所有用户的输入放入列表并跟踪命令索引?就像,如果他们按下向上箭头减少命令索引(所以我们抓住前面的命令),向下会增加命令索引。 – thegrinner 2013-03-14 17:26:10