用于HTML的Python模块

0 投票
2 回答
1028 浏览
提问于 2025-04-17 02:28

我看到有些人问过这个问题,但我想要更具体的答案。我需要一个可以在Python 2.4上使用的模块,而且只支持HTML(不要太新,比如HTML5),可能还需要CSS。
我打算从一个文本文件或者数据库中提取信息,然后写入一个HTML文件。
你觉得哪个模块最适合这个任务呢?
我刚开始学Python,没有时间去尝试不同的模块,所以我需要一个“最佳”的选择XD。
我查过markup.pyHTMLTags,你觉得怎么样?

非常感谢你!

***我忘了问!如果这个模块需要root权限,你能告诉我怎么在没有root权限的情况下安装吗?T.T

2 个回答

0

如果你想在不以管理员身份安装Python包的情况下使用它们,可以在你的账户下的某个地方解压virtualenv的源代码,然后直接用Python运行它的virtualenv.py来创建一个虚拟目录。

$ python ~/virtualenv-1.6.4/virtualenv.py myvenv
$ cd myvenv
$ ls
bin/  include/  lib/
$ . bin/activate
(myvenv)$ pip install whatever...

在这个虚拟环境激活的情况下,你安装的所有包都会放在它的binlib目录里,而不是系统的目录里,这样这些包只能被myvenv/bin目录里的python看到。

我不太喜欢用代码来生成HTML,我更喜欢使用模板,这样一个看起来像HTML的文件可以从我的Python脚本中提取数据,同时仍然“看起来像”HTML。这是一个比较流行的选择,但我手上的机器上没有python2.4,所以无法测试它是否能在这么老的Python上运行。祝你好运!

http://jinja.pocoo.org/

1

你试过 lxml 吗?

>>> from lxml.html import builder as E
>>> from lxml.html import usedoctest
>>> html = E.HTML(
...   E.HEAD(
...     E.LINK(rel="stylesheet", href="great.css", type="text/css"),
...     E.TITLE("Best Page Ever")
...   ),
...   E.BODY(
...     E.H1(E.CLASS("heading"), "Top News"),
...     E.P("World News only on this page", style="font-size: 200%"),
...     "Ah, and here's some more text, by the way.",
...     lxml.html.fromstring("<p>... and this is a parsed fragment ...</p>")
...   )
... )

>>> print lxml.html.tostring(html)

输出结果

<html>
  <head>
    <link href="great.css" rel="stylesheet" type="text/css">
    <title>Best Page Ever</title>
  </head>
  <body>
    <h1 class="heading">Top News</h1>
    <p style="font-size: 200%">World News only on this page</p>
    Ah, and here's some more text, by the way.
    <p>... and this is a parsed fragment ...</p>
  </body>
</html>

撰写回答