【问题标题】:Formatting HTML style in PyCharm在 PyCharm 中格式化 HTML 样式
【发布时间】:2016-08-31 22:16:18
【问题描述】:

如何自动生成选项卡以在生成的 HTML 文件上获得正确的树视图?

例如,我有这样的代码:

    def creating_html(self):
    something ='''<table style="width:100%">
    <tr>
        <th>Firstname</th>
        <th>Lastname</th>
        <th>Age</th>
    </tr>
    <tr>
        <td>Jill</td>
        <td>Smith</td>
        <td>50</td>
    </tr>
    <tr>
        <td>Eve</td>
        <td>Jackson</td>
        <td>94</td>
    </tr>
</table>
'''
    file.write(something)

此代码将使用适当的选项卡等生成代码。但是我觉得我的代码确实很混乱,而且我也认为我正在浪费时间检查良好的格式。所以我在想这样的事情,让我的代码更干净一些。

    def creating_html(self):
    something ='''
            <table style="width:100%">
            <tr>
            <th>Firstname</th>
            <th>Lastname</th>
            <th>Age</th>
            </tr>
            <tr>
            <td>Jill</td>
            <td>Smith</td>
            <td>50</td>
            </tr>
            <tr>
            <td>Eve</td>
            <td>Jackson</td>
            <td>94</td>
            </tr>
            </table>
            '''
    file.write(something)

但现在格式当然无效了。

我正在寻找一个好的解决方案,其中一个就是在使用 PyCharm 生成它后打开这个 HTML 文件并使用快捷键 Ctrl+Alt+L 。我正在寻找一种自动执行此操作的解决方案。

【问题讨论】:

  • @jonrsharpe 感谢您的编辑,并为我凌乱的英语感到抱歉。我还在学习。 :)
  • 这如何让你的代码更干净?它使内联 HTML 更难阅读。无论如何,一旦生成,谁会阅读它?

标签: python html python-2.7 pycharm


【解决方案1】:

您可以使用 Beautiful Soup 4 通过 pip 安装它并使用它,如下所示:

from bs4 import BeautifulSoup
something ='''
        <table style="width:100%">
        <tr>
        <th>Firstname</th>
        <th>Lastname</th>
        <th>Age</th>
        </tr>
        <tr>
        <td>Jill</td>
        <td>Smith</td>
        <td>50</td>
        </tr>
        <tr>
        <td>Eve</td>
        <td>Jackson</td>
        <td>94</td>
        </tr>
        </table>
        '''
messed_code= BeautifulSoup(something, 'html.parser')
file.write(messed_code.prettify())

就我个人而言,我认为字符串在第一种情况下看起来更好,因为它更具可读性

【讨论】:

  • 实际上我不需要做某事,因为我有很多“某事”被粘在后面。这就是为什么我需要处理这个写入的文件,但我会阅读更多关于这个 beautifulSoup 的信息,我 99% 确定它对我有用,谢谢 :)
  • 我猜你可以读取文件并传递它的字符串以便用漂亮的汤美化它
  • 是的,我认为这是一个很好的解决方案,我会在晚饭后尝试,非常感谢:-)
  • 很高兴为您提供帮助!如果您认为这是一个合适的答案,请接受它作为关闭帖子的答案:)
【解决方案2】:
from lxml import etree, html
html_string ='''
            <table style="width:100%">
            <tr>
            <th>Firstname</th>
            <th>Lastname</th>
            <th>Age</th>
            </tr>
            <tr>
            <td>Jill</td>
            <td>Smith</td>
            <td>50</td>
            </tr>
            <tr>
            <td>Eve</td>
            <td>Jackson</td>
            <td>94</td>
            </tr>
            </table>
            '''
html_object = html.fromstring(html_string)
file.write(etree.tostring(html_object, pretty_print=True))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 2019-11-13
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多