Python docutils 文本到html 的转换 docutils- 千月的python linux 系统管理指南学习笔记(17)

时间:2024-03-22 11:35:54
Python 文本到html 的转换
在 B/S 的结构里我们用到了大量的 html 文本。那么我们如何将一个文件转换为 html 文本呢。
首先我们要说一个格式 ReST( reStructuredText重构建文本),这个是Python文档优先使用的格式。我们在很多的有python的地方都能够看到这个格式。比如 Openstack 。
这个格式大概的样子是:
==========
文档标题
==========
--------------
文档子标题
--------------
文档内容
- 条目1
- 条目2
reStructuredText重构建文本我们有空开新内容的时候再聊吧。先对这个词有个概念。重构建文本主要是用来按照一定的规则来格式化文本的内容。
我们所熟知的 html 其实也是这个功能, 不过规范的方法是 <标签>内容</标签> 在编写的时候略显繁复。因此重构建文本用更简单的标识方法来标记文档内容的格式。一下是两种文档对于粗体的表达方法。
ReST **粗体**
html <b>粗体</b>

文本到 html 的转换
转换开始
import docutils.core
我们先引入此模块,使用其转变文档格式
docutils.core.publish_string( source=源 , writer_name='输出' ) 转换对象格式

当然选项还有很多,publish_string 仅仅是一项。还有 publish_cmdline publish_file 等。

Python docutils 文本到html 的转换 docutils- 千月的python linux 系统管理指南学习笔记(17)

我们在最后输出的时候,仅截取了 <body>标签之间的字符,不然显示的无用内容就过多了。结果很明显格式已经转换了。写入一个文件用浏览器打开看看。
Python docutils 文本到html 的转换 docutils- 千月的python linux 系统管理指南学习笔记(17)

反正基本目的达到了。好看不好看另说。

表格到 html 的转换
文档的转换我们大概看到效果了,而在工作中表格的使用也非常多,ReST怎么定义的表格呢。我们看一个例子。
Python docutils 文本到html 的转换 docutils- 千月的python linux 系统管理指南学习笔记(17)

熟悉 html 的朋友已经看到,标签是表格格式的了。我们同样用浏览器看看。

Python docutils 文本到html 的转换 docutils- 千月的python linux 系统管理指南学习笔记(17)


另外推荐一个工具是 Testile ,除了格式上的定义外都和上面讲的都差不多,就不再单独说了,有兴趣的朋友可以去网上找找,例子很多。