2013-02-10 83 views
1

我有一个python脚本,通过内置的input()函数从用户处获取信息。input()::使用退格键和箭头键

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

我有这个问题的一个简单的例子...

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

下面是使用它的一个例子。

./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' 

在试图“1”用箭头键和退格,以除去^ [[d^[[d 1 H上来代替删除移动离开两个空间以及去除“1”,并且值使程序崩溃。

我该如何解决这个问题,使所有的按键功能如预期?

回答

8

导入标准库中的readline模块。 它会自动包装stdin。

+0

这样做。谢谢。 – Peregrine 2013-02-10 09:48:12