最大的问题是“超前”,我认为这引起了问题。可以将其略微缩短:
def _recurse_tree(parent, depth, source): last_line = source.readline().rstrip() while last_line: tabs = last_line.count('t') if tabs < depth: break node = last_line.strip() if tabs >= depth: if parent is not None: print "%s: %s" %(parent, node) last_line = _recurse_tree(node, tabs+1, source) return last_lineinFile = open("test.txt")_recurse_tree(None, 0, inFile)由于我们在谈论递归,因此我竭尽全力避免任何全局变量(
source和
last_line)。使它们成为某个解析器对象的成员将更加具有Pythonic性。



