input()::使用Backspace和Arrow Keys

Per*_*ine 4 python python-3.x

我有一个python脚本,通过内置的input()函数从用户获取信息.

我的问题是为什么退格键和箭头键不能正常工作,如何修复它以使它们按预期运行.

我遇到问题的一个简单例子......

#!/usr/bin/env python3
while 1:
  x=input("enter integer: ")
  y=int(x)*17
  print(y)
Run Code Online (Sandbox Code Playgroud)

这是使用它的一个例子.

./tester 
enter integer: 3
51
enter integer: 17
289
enter integer: 172^[[D^[[D^H
Traceback (most recent call last):
  File "./tester", line 4, in <module>
    y=int(x)*17
ValueError: invalid literal for int() with base 10: '172\x08'
Run Code Online (Sandbox Code Playgroud)

在尝试使用箭头键和退格键移除'1'时,^ [[D ^ [[D ^ H出现而不是删除向左移动两个空格并移除'1',并且值使程序崩溃.

我如何解决这个问题,以便所有按键按预期运行?

t-8*_*8ch 15

readline从标准库导入模块.它自动包装标准输入.