我正在编写一个脚本,通过localy保存的归档日志文件解析字符串。在收到用户的反馈后,我想实现一项功能,允许用户以任何方式重新输入他们“乱搞”的字符串。有没有办法基于捕获的键组合执行此操作,例如在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: ")
如果他们在In之后陷入困境并且不得不再次输入所有内容,这可能不是最佳的,因此这个问题确实存在。
答案 0 :(得分: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
。除此之外,我们只是循环直到用户对数据感到满意为止。