动态访问文本文件中的特定标签并获取其下的元素,然后再次使用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”可能是因为你的文本文件与你在这个问题上共享的文本文件不同。这些代码适用于您共享的文本文件。