Python用户输入控件:如何允许用户重新输入他输入的一个值?

Python用户输入控件:如何允许用户重新输入他输入的一个值?,python,Python,我正在编写一个脚本,通过本地保存的存档日志文件解析字符串。在收到用户的反馈后,我想实现一个特性,允许用户以任何方式重新输入他们“弄乱”的字符串。有没有一种方法可以基于捕获的键组合(例如python中的键组合)来实现这一点?这是我正在收集的用户输入列表: serverID = raw_input ("Description: ") containerID = raw_input ("Description: ") logtime = raw_input ("Description: ") ando

我正在编写一个脚本,通过本地保存的存档日志文件解析字符串。在收到用户的反馈后,我想实现一个特性,允许用户以任何方式重新输入他们“弄乱”的字符串。有没有一种方法可以基于捕获的键组合(例如python中的键组合)来实现这一点?这是我正在收集的用户输入列表:

serverID = raw_input ("Description: ")
containerID = raw_input ("Description: ")
logtime = raw_input ("Description: ")
andor = raw_input ("Description: ")
string1 = raw_input ("Description: ")
string2 = raw_input ("Description: ")
string3 = raw_input ("Description: ")
string4 = raw_input ("Description: ")
afterIn = raw_input ("Description: ")
beforeIn = raw_input ("Description: ")

确实,如果他们在事后搞砸了,不得不重新输入所有内容,这可能不是最优的,因此问题就来了。

您希望为您的数据使用实际的数据结构,这将使此任务变得非常简单:

fields = ["serverID", "containerID", "logtime", "andor"]

data = {field: raw_input("{}: ".format(field)) for field in fields}

while True:
    print("\nYou entered:")
    for key, value in data.items():
        print("{}: {}".format(key, value))
    print("Please type the name of any field you wish to change, or nothing to continue.")
    field = raw_input("Correct a field?: ")
    if not field:
        break
    elif field in data:
        data[field] = raw_input("{}: ".format(field))
    else:
        print("Field name not recognised.")

print(data)
这里我们使用字典来存储数据。请注意,字典是无序的,因此如果顺序很重要,您可能希望使用
collections.OrderedDict
。除此之外,我们只是循环,直到用户对数据满意为止