如何有效地汇总tex数据-Python

时间:2019-06-05 14:31:59

标签: python

我的文本文件中包含以下数据:

tag=bmw: One
tag=audi: Two
tag=bmw: Three and Four
tag=saab: Five
tag=audi: Six
tag=bmw,audi: Seven

我想实现以下目标:

bmw:
    One
    Three and Four
    Seven
audi:
    Two
    Six
    Seven
saab:
    Five

我使用python脚本,可以轻松读取输入文件并解析文本。 然后我读了每一行后,便有了一个TAG及其DESCription。

我有一个问题:如何存储它,以便以后(在读取整个文本文件之后)可以使用它,并通过TAG有效地聚合它们。 我不知道会出现什么TAG,会有多少TAG。

1 个答案:

答案 0 :(得分:1)

您可以将它们聚合为lists项的defaultdict

from collections import defaultdict

d = defaultdict(list) # values will all be lists

with open('yourfile.txt') as fh:
    for line in fh:
        k, v = line.split('=')[1].split(':')
        for key in k.split(','):
            d[key.strip()].append(v.strip())

d
# defaultdict(<class 'list'>, {'bmw': ['One', 'Three and Four', 'Seven'], 'audi': ['Two', 'Six', 'Seven'], 'saab': ['Five']})

现在您可以对d.get('bmw')等品牌进行查询