我想从recostructedText字符串中的代码指令中逐字提取源代码。在
下面是我第一次尝试这样做,但我想知道是否有更好的(即更健壮、更一般、更直接)的方法。在
假设我在python中将以下rst文本作为字符串:
s = '''
My title
========
Use this to square a number.
.. code:: python
def square(x):
return x**2
and here is some javascript too.
.. code:: javascript
foo = function() {
console.log('foo');
}
'''
为了得到这两个代码块,我可以这么做
^{pr2}$现在源代码是一个列表,其中只有来自两个代码块的逐字源代码。如果需要,我也可以使用child的attributes属性来找出代码类型。在
它能起作用,但是有更好的方法吗?在
您的解决方案只会在文档的顶层找到代码块,如果类“code”用于其他元素,它可能会返回误报(不太可能,但可能)。我还要检查元素/节点的类型,在它的.tagname属性中指定。在
节点上有一个“遍历”方法(document/doctree只是一个特殊的节点),它对文档树进行完整的遍历。它将查看文档中的所有元素,并只返回与用户指定条件匹配的元素(返回布尔值的函数)。方法如下:
可以进一步简化如下:
相关问题 更多 >
编程相关推荐