2013-03-14 123 views
6

我正在用python编写程序,用户需要通过命令行来处理程序。我正在使用raw_input从用户获取命令。我想要像bash等那样拥有“内存”,所以,如果你在键盘上按下一个箭头(向上或向下),就会得到上一个/下一个命令。我知道一个办法做到这一点(简单地得到由用户输入的每一个字符,并检查它),但也许你知道的东西更好/更可爱:-)Python中的历史命令行

问候

+0

为什么不把所有用户的输入放入列表并跟踪命令索引?就像,如果他们按下向上箭头减少命令索引(所以我们抓住前面的命令),向下会增加命令索引。 – thegrinner 2013-03-14 17:26:10

回答

11

如果我知道你想什么,你可以只需导入readline模块即可实现。这将修改raw_input()的行为,使其在历史和行编辑方面更像python交互式shell。

不过要小心,有可能构建Python没有readline所以我建议将其导入一个try块内:

try: 
    import readline 
except: 
    pass #readline not available 
+0

是的,这正是我想要的,谢谢! – sokoli 2013-03-14 17:40:21