Python 官方文档:入门教程 => 点击学习
【背景】下面的文本(https://www.aimsciences.org/article/doi/10.3934/cpaa.2009.8.1725)Global well-posedness for the $L^2$-critical
【背景】
下面的文本(https://www.aimsciences.org/article/doi/10.3934/cpaa.2009.8.1725)
Global well-posedness for the $L^2$-critical Hartree equation on $\mathbb{R}^n$, $n\ge 3$
被 MathJax 渲染成
需要解析成
Global well-posedness for the L2-critical Hartree equation on Rn, n≥3
【环境】
OS 版本:windows10 x64 1803
mathjax-node:mathjax-node@2.1.1
npm install -g mathjax-node
npm list --depth=0 -global
set node_path=C:\Users\walker\AppData\Roaming\npm\node_modules
【t.js】
var mjapi = require("mathjax-node")
function MathJax2Xml(mathjaxFORMula) {
mjAPI.config({
});
mjAPI.start();
mjAPI.typeset({
math: mathjaxFormula,
format: "TeX",
mml: true
}, function (data) {
if (!data.errors) {
console.log(data.mml);
} else {
console.log("<p>ERROR</p>");
}
});
}
var args = process.argv.splice(2);
MathJax2Xml(args[0])
【t.py】
#encoding: utf-8
#author: walker
# date: 2019-05-17
# summary: 调用 nodejs 处理 mathjax 公式
import re
from subprocess import check_output
from parsel import Selector
def GetXml(mathjaxFormula):
r""" 将 mathjax 公式转为 xml """
bytesTxt = check_output(['node', 't.js', mathjaxFormula], timeout=100)
xmlText = bytesTxt.decode('utf8').strip()
# print('xmlText: %s' % xmlText)
return xmlText
def Xml2PlainText(xmlText):
r""" 将 xml 转换为普通文本 """
sel = Selector(text=xmlText, type='xml')
plainText = sel.xpath('string(.)').get().strip()
plainText = re.sub(r'\s+', '', plainText) # 去掉空白
# print('plainText: %s' % plainText)
return plainText
def FnRepl(matched):
r""" re.sub 的回调函数 """
mathjaxFormula = matched.group(0)
mathjaxFormula = mathjaxFormula[1:-1] # 去掉前后的 $ 符号
return Xml2PlainText(GetXml(mathjaxFormula))
def Convert(mathjaxText):
plainText = re.sub('\$[\s\S]+?\$', FnRepl, mathjaxText)
plainText = re.sub(r'\s+', ' ', plainText) # 将多余空白替换成单个空格
return plainText
if __name__ == '__main__':
mathjaxText = 'Global well-posedness for the $L^2$-critical Hartree equation on $\mathbb{R}^n$, $n\ge 3$'
plainText = Convert(mathjaxText)
print('mathjaxText: %s' % mathjaxText)
print('plainText: %s' % plainText)
【相关阅读】
*** walker ***
--结束END--
本文标题: Python3 调用 Node.js 解
本文链接: https://lsjlt.com/news/192466.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0