动态访问文本文件中的特定标签并获取其下的元素,然后再次使用python从下一个单词开始并获取其下的元素

动态访问文本文件中的特定标签并获取其下的元素,然后再次使用python从下一个单词开始并获取其下的元素,python,python-3.x,Python,Python 3.x,我有使用它的文本文件,我必须访问它下面的特定标签和元素,我也同样为其他标签这样做 Test[v]: A: work:35,40 test:89,87 B: test:89,20 c: work:56,98 Wor[K] H: test:32,34 work:43,46 J: test:65,98 work:56,90 Apple[u] M: test:12,14 work:13,18 q: test:1,24 work:10,68 这种文本文件格式我可以访问特定的标题和副标题,也

我有使用它的文本文件,我必须访问它下面的特定标签和元素,我也同样为其他标签这样做

Test[v]:
A:
work:35,40
test:89,87

B:
test:89,20

c:
work:56,98

Wor[K]
H:
test:32,34
work:43,46

J:
test:65,98
work:56,90


Apple[u]
M:
test:12,14
work:13,18

q:
test:1,24
work:10,68
这种文本文件格式我可以访问特定的标题和副标题,也可以逐个访问元素

mylist=['Test[v]:','Wor[K],'Apple[u]]

test= []
    for sub_lst in myList:
        results=[]
        for i in sub_lst:
            if i.__contains__(','):
                results.append(int(i.replace(",","")))
        test.append(results)
    print(test)
我已经尝试访问第一个标题,并打印它下面的元素,然后开始访问下一个标题。但在这里,我不知道如何在下一个标题之前结束并开始访问它

这是下面提到的预期产出

[[Test[v]:[A:[3540,8987],B:[8920],c:[5698]],
 [Wor[K]:[H:[3234,4346],J:[6598,5690]],
 [Apple[u]:[M:[1214,1318],q:[124,1068]]]

你认为下面的代码适合你吗

with open("test.txt", "r") as f:
    readlines = []
    for i in f.readlines():
        if "[" in i:
            sub_list = []
            sub_list.append(i.replace("\n", ""))
            readlines.append(sub_list)
        else:
            globals()["sub_list"].append(i.replace("\n", ""))
            readlines.append(sub_list)
    new_list = []
    for i in readlines:
        if i not in new_list:
            new_list.append(i)
    print(new_list)
输出:

[['Test[v]:', 'A:', 'work:35,40', 'test:89,87', '', 'B:', 'test:89,20', '', 'c:', 'work:56,98', ''], ['Wor[K]:', 'H:', 'test:32,34', 'work:43,46', '', 'J:', 'test:65,98', 'work:56,90', ''], ['Apple[u]:', 'M:', 'test:12,14', 'work:13,18', '', 'q:', 'test:1,24', 'work:10,68']]

您是否控制文本文件格式?如果是,您应该使用一种易于使用的众所周知的格式。例如,JSON、YAML或INI。请显示您目前拥有的代码。这个文件似乎结构良好,所以解析起来应该不难。我得到的keyerror如下:keyerror:“sub_list”可能是因为你的文本文件与你在这个问题上共享的文本文件不同。这些代码适用于您共享的文本文件。