首页 > 解决方案 > 动态访问文本文件中的特定标签并获取其下的元素并再次从下一个单词开始并使用python获取其下的元素

问题描述

我有使用它的文本文件,我必须访问它下面的特定标签和元素,我也对其他标签进行了类似的操作。

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]]]

标签: pythonpython-3.x

解决方案


您认为以下代码对您有用吗?

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']]

推荐阅读