0

都市、時間、地域を 1 つの検索にリンクするにはどうすればよいですか。呼び出された関数がある場合、searchリスト全体で city2 のみを検索し、City2、Time2、Local2 の値のみを出力します。ファイルを読み取ってリストに追加するときに、何かする必要がありますか?

*更新 * 3 つの属性 (都市、時間、ローカル) を持ち、ファイルからデータをリスト内のオブジェクトに保存するように、このコードを書き直す方法はありますか? str 関数を使用してそれらを印刷しますか?

例のリスト

City
Time
Local
--------------
City2
Time2
Local2
--------------
City
Time
Local
--------------
City3
Time3
Local3
--------------

コード:

class gym:
def __init__(self, city, local, time,  ):
    self.city = city
    self.local = local
    self.time = time
    self.city_dict = {}

    def readfile():
        row = "start"
        list = []
        infile = open("data.txt", "r", encoding="utf-8")
        while row != "":
            row = infile.readline()
            list.append(rad)
        infile.close()

gym.readfile()
4

2 に答える 2

1

Blckknghtは、データで他のことをしたい場合に非常に役立つ良い解決策を提供しましたが、あなたが説明したタスクのために-「City2」を見つけて、その時間と地域とともに印刷します-あなたはそれを行うことができます単純なgrep -A2 City2 data.txt、または Python の場合:

with open("data.txt", encoding="utf-8") as fh:
    for line in fh:
        if line.startswith("City2"):
            for _ in range(3):
                print(line.strip())
                line = next(fh)
            continue

最初に出現したものだけを見つけたい場合は、 に置き換えることができcontinueますbreak

コメントで説明したように、結果をすぐに印刷する必要はありません。あなたはこれを行うかもしれません:

matches = []
with open("data.txt") as fh:
    for line in fh:
        if line.startswith("City2"):
            matches.append([])
            for _ in range(3):
                matches[-1].append(line.strip())
                line = next(fh)
            continue
for match in matches:
    print("City: {}; Time: {}; Local: {}".format(*match))
于 2013-09-07T13:40:18.037 に答える