Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中带历史记录的命令行_Python_Command Line - Fatal编程技术网

python中带历史记录的命令行

python中带历史记录的命令行,python,command-line,Python,Command Line,我正在用python编写程序,其中用户通过命令行处理程序。我使用原始输入从用户处获取命令。我想要像bash中那样的“内存”,所以,如果你按下键盘上的箭头(向上或向下),你就会得到上一个/下一个命令。我知道一种方法(简单地让用户键入每个字符并检查),但也许你知道一些更好/更可爱的方法:-) 问候语如果我了解您想要什么,您只需导入读线模块即可实现。这将修改raw\u input()的行为,使其在历史记录和行编辑方面更像python交互式shell 但是要小心,在不使用readline的情况下构建py

我正在用python编写程序,其中用户通过命令行处理程序。我使用原始输入从用户处获取命令。我想要像bash中那样的“内存”,所以,如果你按下键盘上的箭头(向上或向下),你就会得到上一个/下一个命令。我知道一种方法(简单地让用户键入每个字符并检查),但也许你知道一些更好/更可爱的方法:-)


问候语

如果我了解您想要什么,您只需导入
读线
模块即可实现。这将修改
raw\u input()
的行为,使其在历史记录和行编辑方面更像python交互式shell

但是要小心,在不使用
readline
的情况下构建python是可能的,因此我建议在try块中导入它:

try:
    import readline
except:
    pass #readline not available

内置提供此功能。

为什么不将用户的所有输入放在列表中并跟踪命令索引?比如,如果他们按下向上箭头,它会减少命令索引(因此我们抓取上一个命令),向下会增加命令索引。