你可以使用
split('-')
查找标题级别的方法:
subs_amount = an_ele.split('-')
你可以从标题的长度推断标题的级别
subs_amount
列表如果长度为1,则为a
"heading"
.如果是3,那就是
"sub-sub-heading"
等
然后,列出一个清单
store_levels
如Tim Roberts在评论中所说,要存储更高级别的前几个标题的索引:
if len(subs_amount) > len(store_levels):
store_levels.append(1) #add a sub-level
elif len(subs_amount) == len(store_levels):
store_levels[-1] += 1 #add a heading of the same level
else:
del store_levels[-1] #go back to the level above
现在,为了建立输出,你只需要
"_".join(store_levels)
并将其附加到输出中。
抱歉,没有使用与您相同的变量名。我这样做是为了不混淆或改变它们的用途。我希望我的代码足够清晰,这样你就可以实现它。