带历史记录的Python命令行

16 投票
2 回答
6374 浏览
提问于 2025-04-17 19:07

我正在用Python写一个程序,用户需要通过命令行来操作这个程序。我使用raw_input来获取用户输入的命令。我想要实现一个类似于bash的“记忆”功能,也就是说,当你在键盘上按上下箭头时,可以看到之前或下一个输入的命令。我知道一种方法是简单地获取用户输入的每个字符并进行检查,但也许你知道更好或更简单的方法:-)

问候

2 个回答

6

内置的 readline模块 提供了这个功能。

26

如果我理解你的意思,你可以通过导入 readline 模块来简单实现你想要的功能。这样一来,raw_input() 的行为就会更像 Python 的交互式命令行,支持历史记录和行编辑。

不过要小心,有可能在构建 Python 时没有包含 readline,所以我建议你在一个尝试块(try block)里面导入它:

try:
    import readline
except:
    pass #readline not available

撰写回答