BeautifulSoup的自定义缩进宽度.prettify()

问题描述 投票:27回答:3

是否可以为.prettify()函数定义自定义缩进宽度?从我可以从它的源中得到的-

def prettify(self, encoding=None, formatter="minimal"):
    if encoding is None:
        return self.decode(True, formatter=formatter)
    else:
        return self.encode(encoding, True, formatter=formatter)

无法指定缩进宽度。我认为是因为decode_contents()函数中的这一行-

s.append(" " * (indent_level - 1))

固定长度为1个空格! (为什么!)我尝试指定indent_level=4,这只会导致-->

    <section>
     <article>
      <h1>
      </h1>
      <p>
      </p>
     </article>
    </section>

哪个看上去很愚蠢。 :|

现在,我可以解决这个问题,但是我只是想确定是否有任何我想念的东西。因为这应该是一个基本功能。 :-/

如果您有更好的美化HTML代码的方法,请告诉我。

是否可以为.prettify()函数定义自定义缩进宽度?从我的来源可以知道-def prettify(self,encoding = None,formatter =“ minimal”):如果编码为None:...

python beautifulsoup indentation code-formatting
3个回答
19
投票

我实际上以最骇人听闻的方式处理了这个问题:通过对结果进行后处理。


5
投票

据我所知,此功能不是内置的,因为针对此问题有很多解决方案。


0
投票

如果您使用的是pycharm,则可以通过按以下按钮自动重新格式化html文件:

© www.soinside.com 2019 - 2024. All rights reserved.