【问题标题】:Python prints escape keys while entering input when pressing the arrow keys on Terminal在终端上按下箭头键时,Python 在输入输入时打印转义键
【发布时间】:2019-10-28 13:01:07
【问题描述】:

我制作了一个简单的 Python 3 脚本,它接受用户的输入。但是在输入输入时,如果我按左箭头键,而不是向左打印 ^[[D 。它发生在所有箭头键上。但它不会在终端或 Python 交互式 Shell 中发生,它只会在我从终端运行 Python 脚本并需要输入输入时发生。

我使用运行 Python 3.7 的 Ubuntu 19.10 和 Anaconda 发行版。

operation = input("Enter the expression: ")

我该如何解决这个问题?

【问题讨论】:

    标签: python shell terminal anaconda arrow-keys


    【解决方案1】:

    在使用input之前导入readline

    import readline
    operation = input("Enter the expression: ")
    

    https://docs.python.org/3/library/readline.html

    使用此模块进行的设置会影响两者的行为 口译员的交互式提示和由口译员提供的提示 内置 input() 函数。

    导入它就足以激活输入行编辑(箭头键将移动光标而不是打印 ^[[D 等)。 readline 模块中的其他功能可用于设置选项卡完成和历史文件。

    【讨论】:

    • 除了将这行代码添加到我制作的每个脚本中之外,还有其他方法吗?
    • 我不知道。您在脚本中看到的内容 - 打印 ^[[D 等 - 是默认行为。终端和 Python Shell 正在使用 readline。
    • 但是您不需要在终端和 Python Shell 中自己输入。你能把 Python 配置为在运行脚本时自动导入 readline 吗?
    猜你喜欢
    • 2014-05-06
    • 2015-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多