替换文件中的数学符号

时间:2014-01-12 21:17:05

标签: python string math replace

我有一个包含乳胶形式的数学表达式的文件。例如,我的文件中出现以下内容:

{\frac{d^{2}}{d^{2}{r}}}\zeta

我想编写一个python代码,它将扫描文件并输出一个新文件,其中上面表达式的所有实例都替换为

\zeta''

我尝试过以下代码:

    import sys
    import fileinput

    for line in fileinput.input():
    l = line.replace(r"{\frac{d^{2}}{d^{2}{r}}}\zeta","\zeta'")
    sys.stdout = open('output.txt','a')
    sys.stdout.write(l) 

我知道在第一个要替换的字符串之前出现的r告诉代码忽略任何转义字符。但它似乎很难处理d ^ {2}部分。该代码未正确解释此“^”符号,因此不会进行替换。

我知道{\ frac {d ^ {2}} {d ^ {2} {r}}} \ zeta在技术上不是字符串,但我不确定如何对待它。任何帮助都会很棒。感谢。

1 个答案:

答案 0 :(得分:1)

等同于您的代码(regex.py):

#!/usr/bin/python

import sys
import fileinput

x = open("output.txt", "a")

for line in fileinput.input():
    l = line.replace(r"{\frac{d^{2}}{d^{2}{r}}}\zeta","\zeta''")
    x.write(l)

似乎运行得很好:$ echo '{\frac{d^{2}}{d^{2}{r}}}\zeta' | ./regex.py给出:

\zeta''