输入input()函数的数据时箭头键不起作用

deb*_*ish 1 python linux

在linux中,当我尝试输入input()函数的数据时,箭头键不起作用.我得到逃脱角色.见下文(当我按下左箭头键时).

dp@hp:~$ python3 -c "x = input('enter a number '); print(x)"
enter a number 123^[[D^[[D
Run Code Online (Sandbox Code Playgroud)

readline安装了(我可以在python shell中导入它).箭头键在交互式解释器中工作正常,但在上述情况下(或input()从脚本执行时)不能正常工作.

可能是什么原因?

lar*_*sks 6

文件说:

如果加载了readline模块,则input()将使用它来提供精细的行编辑和历史记录功能.

在您的示例中,您尚未加载readline模块.比较这个行为:

x = input('enter a number:')
print(x)
Run Code Online (Sandbox Code Playgroud)

对此:

import readline
x = input('enter a number:')
print(x)
Run Code Online (Sandbox Code Playgroud)

第二个示例将按预期运行(readline支持处于活动状态,箭头键工作等),而第一个示例将没有readline支持.

在命令行上,这将是:

python3 -c "import readline; x=input('enter a number '); print(x)"
Run Code Online (Sandbox Code Playgroud)