将嵌套的缩进文本解析为列表
发布时间:2020-12-20 12:24:14 所属栏目:Python 来源:网络整理
导读:将嵌套的缩进文本解析为列表 嗨, 也许有人可以给我一个开始的帮助. 我有嵌套缩进的txt类似于此.我应该将其解析为嵌套列表结构 TXT = r"""Test1 NeedHelp GotStuck Sometime NoLuck NeedHelp2 StillStuck GoodLuck"""Nested_Lists = ['Test1',['NeedHelp',['G
将嵌套的缩进文本解析为列表
嗨, 也许有人可以给我一个开始的帮助. 我有嵌套缩进的txt类似于此.我应该将其解析为嵌套列表结构 TXT = r""" Test1 NeedHelp GotStuck Sometime NoLuck NeedHelp2 StillStuck GoodLuck """ Nested_Lists = ['Test1',['NeedHelp',['GotStuck',['Sometime','NoLuck']]],['NeedHelp2',['StillStuck','GoodLuck']] ] Nested_Lists = ['Test1','GoodLuck']]] 任何有关python3的帮助都会受到关注 解决方法
您可以利用Python tokenizer来解析缩进的文本:
from tokenize import NAME,INDENT,DEDENT,tokenize def parse(file): stack = [[]] lastindent = len(stack) def push_new_list(): stack[-1].append([]) stack.append(stack[-1][-1]) return len(stack) for t in tokenize(file.readline): if t.type == NAME: if lastindent != len(stack): stack.pop() lastindent = push_new_list() stack[-1].append(t.string) # add to current list elif t.type == INDENT: lastindent = push_new_list() elif t.type == DEDENT: stack.pop() return stack[-1] 例: from io import BytesIO from pprint import pprint pprint(parse(BytesIO(TXT.encode('utf-8'))),width=20) 产量 ['Test1','GoodLuck']]] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |