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: ")

afterIn を台無しにしてすべてを再入力しなければならない場合、それは最適ではない可能性があるため、疑問が生じます。

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 に答える