2013-08-21 43 views
1

如何获取最后一个raw_input?我的py问了一个问题(raw_input),如果用户类型错误再次要求相同,并且用户需要重新输入,那么如何获取最后一个输入以使得用户只需编辑它?(就像一个按下按键的shell一样)Python用户输入重播

回答

1

您正在寻找readline module。这里是一个example from effbot.org

# File: readline-example-2.py 

class Completer: 
    def __init__(self, words): 
     self.words = words 
     self.prefix = None 
    def complete(self, prefix, index): 
     if prefix != self.prefix: 
      # we have a new prefix! 
      # find all words that start with this prefix 
      self.matching_words = [ 
       w for w in self.words if w.startswith(prefix) 
       ] 
      self.prefix = prefix 
     try: 
      return self.matching_words[index] 
     except IndexError: 
      return None 

import readline 

# a set of more or less interesting words 
words = "perl", "pyjamas", "python", "pythagoras" 

completer = Completer(words) 

readline.parse_and_bind("tab: complete") 
readline.set_completer(completer.complete) 

# try it out! 
while 1: 
    print repr(raw_input(">>> ")) 
+0

是的!谢谢 :) – lazyy001

0

使用readline模块。

import readline 

# Everything magically works now! 

如果您想要制表符补充和其他好处,可以使用更复杂的功能。