自动缩进python字符串并写入HTML文件

时间:2017-05-26 00:40:49

标签: python html format

我在python中有一个字符串,我必须写入HTML文件。 Python中是否存在任何带有

等字符串的例程

"( Root ( AB ( ABC ) ( CBA ) ) ( CD ( CDE ) ( FGH ) ) )"

并以缩进的形式将其写入HTML文件?

(Root 
    (AB
        (ABC)
        (CBA)
    )
    (CD 
        (CDE)
        (FGH)
    )
)

1 个答案:

答案 0 :(得分:0)

这是一个大致可以合并的解决方案

def format(text):
  depth = 0
  result = ''
  text = text.replace(' ', '')
  for i in range(len(text)):
    c = text[i]
    if c == '(': 
      depth += 1
      result += '\n' + '  ' * depth + '('
    elif c == ')': 
      depth -= 1
      if text[i-1] != ')':
        result += ')'
      else:
        result += '\n' + '  ' * depth + ')'
    else:
      result += c
  return result.strip()

s = "( Root ( AB ( ABC ) ( CBA ) ) ( CD ( CDE ) ( FGH ) ) )"
print(format(s))



<script src="//repl.it/embed/IS2q/5.js"></script>
&#13;
&#13;
&#13;

你应该明白为什么人们不热衷于回答这个问题。您正在进入解析部门,但忽略了它的复杂性。要实现 正确 的目标,您需要定义原始格式的语法,然后您需要根据该语法进行解析。然后,需要将得到的内部结构(即解析树/语法树)格式化为所需的形式。

我的建议是使用一个完善的标准,如json来表示您的数据,而不是自定义的数据,即原始文本。