2013-08-21 1 views
1

Как я могу получить последнюю версию raw_input? Мой py задает вопросы (raw_input), и если пользовательские типы неправильно спрашивают одно и то же снова, и пользователю нужно вводить все заново, так как я могу получить последний вход, чтобы пользователь мог просто отредактировать его? (Например, при нажатии клавиши на клавиатуре)Python user input replay

ответ

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! 

Есть более сложные функции, доступные, если вы хотите завершить вкладку и другие лакомства.