0

したがって、次のようなスクリプトへの入力ファイルがあります。

20248109|Generic|1|xxx|2|yyy|LINEA|68.66|68.67|True|2920958141272
.
.
.
21248109|Generic|3|xxx|4|www|LINEB|7618|7622|True|2920958281071.97

次のように、Pythonスクリプトを反復処理してLINEAを辞書に入れたい{{1:[68.66,68.67]},{3:[7618,7622]}}

これが私が得た限りです:

Key = ["LINEA", "LINEB"]
fin = open(path)
test = []
for line in fin.readlines():
    if True in [item in line for item in Key]:
       test.append(line)

どんな助けでも素晴らしいでしょう。

4

2 に答える 2

3

まず、次のcsvモジュールを使用する必要があります。

import csv
with open(path, "rb") as infile:
    reader = csv.reader(infile, delimiter="|")

次に、行を反復処理できます。

test = []
for row in reader:
    if row[6] in Key:
        test.append({int(row[2]): row[7:9]})
于 2012-12-20T12:58:19.300 に答える
1

私はこれをします:

keys = ["LINEA", "LINEB"]
with open(path) as fin
    answer = {line.partition("Generic|")[-1]:line for line in fin if any(key in line for key in keys)}

回答を直接編集するには、実際にはかなり近いです:

Key = ["LINEA", "LINEB"]
fin = open(path)
test = {} # dictionary
for line in fin.readlines():
    if True in [item in line for item in Key]:
       dict_key = line.partition("Generic|")[-1]
       test[dict_key] = line
于 2012-12-20T12:57:03.683 に答える