利用python复制wiki百科上的数学公式
平时自己用markdwon做数学笔记的时候想要直接从wiki上复制一些笔记,但是复制下来以后粘贴到md上却发现数学公式部分被重复了两遍。而且没有行内公式的标识符,修改非常费时费力。
比如下面这段,
我复制到md的效果是这样
对于任意的正实数{\displaystyle \varepsilon >0}\varepsilon >0,存在一个正实数{\displaystyle \delta >0}\delta >0使得对于任意定义域中的{\displaystyle x\in \mathbf {I} }x \in \mathbf{I},只要{\displaystyle x}x满足{\displaystyle c-\delta <x<c+\delta }c-\delta<x<c+\delta,就有{\displaystyle f(c)-\varepsilon <f(x)<f(c)+\varepsilon }f(c)-\varepsilon <f(x)<f(c)+\varepsilon成立。
然后我写了一段代码修改后md中显示是这样的
对于任意的正实数 ε > 0 \varepsilon >0 ε>0,存在一个正实数 δ > 0 \delta >0 δ>0使得对于任意定义域中的 x ∈ I x\in \mathbf {I} x∈I,只要 x x x满足 c − δ < x < c + δ c-\delta <x<c+\delta c−δ<x<c+δ就有 f ( c ) − ε < f ( x ) < f ( c ) + ε f(c)-\varepsilon <f(x)<f(c)+\varepsilon f(c)−ε<f(x)<f(c)+ε成立
下面是代码
import pyperclip
old=pyperclip.paste()
# old='对于任意的正实数{\displaystyle \\varepsilon >0}\\varepsilon >0,存在一'
flag=0
new=''
print(old)
i=0
subs=''
# for i in range(len(old)):
while i <len(old):
ch=old[i]
if flag>0:
subs=''.join([subs,ch])
flag=flag-(ch=='}')+(ch=='{')
if flag==0: # 结束displaystyle {}
subs=''.join(['$',subs[0:len(subs)-1].rstrip(),'$'])
new=''.join([new,subs])
i=i+len(subs)-2 # 跳过后边的公式
subs=''
else:
if old[i:i+len('{\\displaystyle')]=='{\\displaystyle':
flag=1
i=i+len('{\\displaystyle')
else:
new=''.join([new,ch]) #常规
i=i+1
pyperclip.copy(new)
print(new)
当然,打开命令再调用文件也很不方便。
我是先把一个文件夹放到环境变量里。创建了bat文件来调用上述代码。
就可以一键完成上面的功能,不影响记录的流畅度。