是否有任何模块可以将重构文本解析为树模型?
docutils 或 sphinx 可以做到这一点吗?
我想扩展加雷斯·拉蒂(Gareth Latty)的回答。 “你可能想要的是解析器docutils.parsers.rst
“是答案的一个很好的起点,但接下来会发生什么?即:
如何在Python中解析重构文本?
以下是 Python 3.6 和 docutils 0.14 的确切答案:
import docutils.nodes
import docutils.parsers.rst
import docutils.utils
import docutils.frontend
def parse_rst(text: str) -> docutils.nodes.document:
parser = docutils.parsers.rst.Parser()
components = (docutils.parsers.rst.Parser,)
settings = docutils.frontend.OptionParser(components=components).get_default_values()
document = docutils.utils.new_document('<rst-doc>', settings=settings)
parser.parse(text, document)
return document
可以使用例如下面的方法处理生成的文档,这将打印文档中的所有引用:
class MyVisitor(docutils.nodes.NodeVisitor):
def visit_reference(self, node: docutils.nodes.reference) -> None:
"""Called for "reference" nodes."""
print(node)
def unknown_visit(self, node: docutils.nodes.Node) -> None:
"""Called for all other node types."""
pass
运行方法如下:
doc = parse_rst('spam spam lovely spam')
visitor = MyVisitor(doc)
doc.walk(visitor)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)