richard <pullenjenn...@gmail.com> writes: > Hi guys i am having a bit of dificulty finding the best approach / > solution to parsing a file into a list of objects / nested objects any > help would be greatly appreciated. > > #file format to parse .txt > [code] > An instance of TestArray > a=a > b=b > c=c > List of 2 A elements: > Instance of A element [...]
Below is a piece of code that seems to work on your data. It builds a raw tree, i leave it to you to adapt and built the objects you want. The assumption is that the number of leading blanks faithfully denotes depth. As noted in another message, you're probably better off using an existing syntax (json, python literals, yaml, xml, ...) -- Alain. #!/usr/bin/env python import sys import re RE = re.compile("( *)(.*)") stack = [("-",[])] # tree nodes are: (head,[children]) for line in sys.stdin: matches = RE.match(line) if len(matches.group(2)) > 0: depth = 1 + len(matches.group(1)) while len(stack) > depth: stack[-2][1].append(stack[-1]) del stack[-1] pass stack.append( (matches.group(2),[]) ) pass pass while len(stack) > 1: stack[-2][1].append(stack[-1]) del stack[-1] pass print(stack) -- http://mail.python.org/mailman/listinfo/python-list