我正在尝试将工具的输出解析为数据结构,但我在做正确的事情时遇到了一些困难。该文件如下所示:
Fruits
Apple
Auxiliary
Core
Extras
Banana
Something
Coconut
Vegetables
Eggplant
Rutabaga
您可以看到顶级项目缩进了一个空格,而其下的项目每一层都缩进了两个空格。这些项目也按字母顺序排列。
如何将文件转换为类似于 ["Fruits", "Fruits/Apple", "Fruits/Banana", ..., "Vegetables", "Vegetables/Eggplant", “蔬菜/芜菁甘蓝”]
?
最佳答案
>>> with open("food.txt") as f:
... res = []
... s=[]
... for line in f:
... line=line.rstrip()
... x=len(line)
... line=line.lstrip()
... indent = x-len(line)
... s=s[:indent/2]+[line]
... res.append("/".join(s))
... print res
...
['Fruits', 'Fruits/Apple', 'Fruits/Apple/Auxiliary', 'Fruits/Apple/Core', 'Fruits/Apple/Extras', 'Fruits/Banana', 'Fruits/Banana/Something', 'Fruits/Coconut', 'Vegetables', 'Vegetables/Eggplant', 'Vegetables/Rutabaga']
关于python - 在Python中解析具有层次结构的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2554474/