0

我正在编写一个脚本,该脚本通过本地保存的存档日志文件解析字符串。在收到用户的反馈后,我想实现一个功能,允许用户以任何方式重新输入他们“搞砸”的字符串。有没有办法基于捕获的组合键来做到这一点,例如在 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: ")

确实,如果他们在输入后搞砸了并且必须再次输入所有内容,它可能不是最佳的,因此是问题所在。

4

1 回答 1

2

您想为数据使用实际的数据结构,这将使这项任务变得更加容易:

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. 除此之外,我们只是循环直到用户对数据感到满意。

于 2013-01-15T08:04:07.497 回答