python - 如何避免 Python 输入中的箭头键值?

标签 python python-3.x bash input terminal

我使用 input() 在 Python 输入中获取箭头键值.

这仅在执行 Python 脚本期间发生。如果输入是从解释器中获取的,则不会发生这种情况。

我所指的箭头键值:Why does the terminal show "^[[A" "^[[B" "^[[C" "^[[D" when pressing the arrow keys in Ubuntu?

脚本文件内容:

s = input("Enter Something: ")
print(s)

终端输出:
$ python input_example.py 
Enter Something: Now Pressing Left Arrow Key^[[D^[[D^[[D^[[D
Now Pressing Left Arrow Key

我无法在写入输入时向左或向右导航(或说更改光标位置)导致箭头键值显示在输入中。 有什么办法可以避免它们吗? 在终端中,通常可以改变光标位置,这个问题不会像 Python 的 input() 那样发生。 .

附言我不想更改 bash 中的任何设置,因为我正在尝试编写一个适用于所有控制台的脚本。我是菜鸟,很多东西看不懂。我希望这个社区可以帮助我。

最佳答案

找到了防止这种情况的方法!
你只需要导入 readline 模块

import readline
这将使标准 input() 方法利用它的一些实用程序,启用正常的箭头键使用等等。

关于python - 如何避免 Python 输入中的箭头键值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61025973/

相关文章:

Python通过装饰类动态给类的方法添加装饰器

python - 在 Python 中获取命令行

尝试将txt文件插入MySql时MySql错误1054

python - 如何仅标准化数据帧的一列,同时保持其他列不受影响?

python-3.x - 如何在 pandas 数据框中用用户定义的值填充 NaN

python - Pandas 图值以递减的方式计算条形图

linux - 使用 Groovy 和 SED 命令用变量替换字符串

bash - 如何使 ssh 与 -o StrictHostKeyChecking=no 在 docker 上运行,以便 ssh 主机工作而不退出脚本执行?

Bash 脚本 "concatenate"多行变量

python - 如何在级联列中添加第一个值?