From 205c620ae5f90ad234fecec45c6167f358071709 Mon Sep 17 00:00:00 2001 From: StrangL <37173803+StrangL@users.noreply.github.com> Date: Wed, 27 Apr 2022 00:33:25 +0300 Subject: [PATCH 1/7] =?UTF-8?q?=D0=9D=D0=B5=20=D1=84=D0=B8=D0=BD=D0=B0?= =?UTF-8?q?=D0=BB=D1=8C=D0=BD=D0=B0=D1=8F=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8?= =?UTF-8?q?=D1=8F!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Не реализовано нахождение формул между $ и $ Использую регулярные выражения... --- main.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 main.py diff --git a/main.py b/main.py new file mode 100644 index 0000000..a170342 --- /dev/null +++ b/main.py @@ -0,0 +1,34 @@ +import sympy.abc +import re + + +def parsing(): + with open('example.tex') as f: + data = list(filter(None, f.read().split('\n'))) + formulas = list() + for item in data: + formulas.append(re.findall(r'\$\$(.*?)\$\$', item)) + formulas.append(re.findall(r'\\begin{equation}(.*?)\\end{equation}', item)) + #formulas.append(re.findall(r'\$([^$]+)\$', item)) + + i = 0 + while i < len(formulas): + if len(formulas[i]) == 0: + formulas.pop(i) + i -= 1 + i += 1 + + for i in range(len(formulas)): + for j in range(len(formulas[i])): + temp = formulas[i][j].replace('\\', '') + formulas[i][j] = temp + print(formulas) + return formulas + + +if __name__ == '__main__': + data = parsing() + for i in range(len(data)): + for j in range(len(data[i])): + expr = sympy.Eq(*map(sympy.sympify, (data[i][j].split("=")))) + print(expr) \ No newline at end of file From 07ea29955a3f279bbd9eaa5e70b714d6953572da Mon Sep 17 00:00:00 2001 From: Egisess Date: Sun, 1 May 2022 21:00:18 +0300 Subject: [PATCH 2/7] Many adds --- main.py | 116 ++++++++++++++++++++++++++++++++++++++++++++++++------- test.txt | 16 ++++++++ 2 files changed, 119 insertions(+), 13 deletions(-) create mode 100644 test.txt diff --git a/main.py b/main.py index a170342..7221a17 100644 --- a/main.py +++ b/main.py @@ -1,15 +1,93 @@ import sympy.abc import re +unicode_greek = ['Α', 'α', + 'Β', 'β', + 'Γ', 'γ', + 'Δ', 'δ', + 'Ε', 'ε', + 'Ζ', 'ζ', + 'Η', 'η', + 'Θ', 'θ', + 'Ι', 'ι', + 'Κ', 'κ', + 'Λ', 'λ', + 'Μ', 'μ', + 'Ν', 'ν', + 'Ξ', 'ξ', + 'Ο', 'ο', + 'Π', 'π', + 'Ρ', 'ρ', + 'Σ', 'σ', + 'Τ', 'τ', + 'Υ', 'υ', + 'Φ', 'φ', + 'Χ', 'χ', + 'Ψ', 'ψ', + 'Ω', 'ω'] +latex_greek = ['Alpha', + 'alpha', + 'Beta', + 'beta', + 'Gamma', + 'gamma', + 'Delta', + 'delta', + 'Epsilon', + 'epsilon', + 'Zeta', + 'zeta', + 'Eta', + 'eta', + 'Theta', + 'theta', + 'Iota', + 'iota', + 'Kappa', + 'kappa', + 'Lambda', + 'lambda', + 'Mu', + 'mu', + 'Nu', + 'nu', + 'Xi', + 'xi', + 'Omicron', + 'omicron', + 'Pi', + 'pi', + 'Rho', + 'rho', + 'Sigma', + 'sigma', + 'Tau', + 'tau', + 'Upsilon', + 'upsilon', + 'Phi', + 'phi', + 'Chi', + 'chi', + 'Psi', + 'psi', + 'Omega', + 'omega'] + +greek_dict = dict(zip(latex_greek, unicode_greek)) + +def healer(line: str): + for greek_letter in latex_greek: + while greek_letter in line: + line = line.replace(greek_letter, greek_dict[greek_letter]) def parsing(): - with open('example.tex') as f: - data = list(filter(None, f.read().split('\n'))) + with open('C:\\Users\\Ducky\\OneDrive\\Рабочий стол\\test.txt') as f: formulas = list() - for item in data: - formulas.append(re.findall(r'\$\$(.*?)\$\$', item)) - formulas.append(re.findall(r'\\begin{equation}(.*?)\\end{equation}', item)) - #formulas.append(re.findall(r'\$([^$]+)\$', item)) + for item in f: + formulas.append(re.findall( + r'\\begin{equation}(.*?)\\end{equation}', item)) + formulas.append(re.findall(r'\$([^$]+)\$', item)) i = 0 while i < len(formulas): @@ -19,16 +97,28 @@ def parsing(): i += 1 for i in range(len(formulas)): - for j in range(len(formulas[i])): - temp = formulas[i][j].replace('\\', '') - formulas[i][j] = temp + formulas[i] = formulas[i][j].replace('\\', '') + + for greek_letter in latex_greek: + while greek_letter in formulas[i]: + formulas[i] = formulas[i].replace( + greek_letter, greek_dict[greek_letter]) + + while (formulas[i].find('frac{') != -1): + formulas[i] = formulas[i].replace('frac{', '(') + formulas[i] = formulas[i].replace('}{', ')/(') + formulas[i] = formulas[i].replace('}', ')') + + if (formulas[i].find('=') != -1): + left = sympy.sympify(formulas[i][:formulas[i].find('=')]) + right = sympy.sympify(formulas[i][(formulas[i].find('=') + 1):]) + formulas[i] = (f'{left} = {right}') + else: + formulas[i] = sympy.sympify(formulas[i]) + print(formulas) return formulas if __name__ == '__main__': data = parsing() - for i in range(len(data)): - for j in range(len(data[i])): - expr = sympy.Eq(*map(sympy.sympify, (data[i][j].split("=")))) - print(expr) \ No newline at end of file diff --git a/test.txt b/test.txt new file mode 100644 index 0000000..e6dc077 --- /dev/null +++ b/test.txt @@ -0,0 +1,16 @@ +$$l=t+i*f/s$$ +dxhbzrar +$a-b=c+f*r$ +dfgbfnst +\begin{equation}r=g+g+o+m*k\end{equation} +\(r-f=z+v\)dvsv +sedtgb +\begin{equation}\frac{7*u*j}{47 - \beta} + s*d*s*m*t -\frac{1 - x}{2132 - \phi} + \frac{1 - x}{232 - \alpha}\end{equation} +skjvbbksjvk $$h=k+i*i$$ ekvjeorjvekvj +$j=r+d*y$ +fbsnrhagr +$$x=a+b*y/s$$ +$$n-p=v+n*b$$ +\begin{equation}b=a+g+t+y*c\end{equation} +skjvbbksjvk $$h=k+i*i$$ ekvjeorjvekvj +$j=k+y*y$ \ No newline at end of file From ec1a008c1c8403be27a0bacc7c66c92f4daa6384 Mon Sep 17 00:00:00 2001 From: Egisess Date: Wed, 4 May 2022 16:30:06 +0300 Subject: [PATCH 3/7] Update main.py --- main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.py b/main.py index 7221a17..ca8f03e 100644 --- a/main.py +++ b/main.py @@ -82,7 +82,7 @@ def healer(line: str): def parsing(): - with open('C:\\Users\\Ducky\\OneDrive\\Рабочий стол\\test.txt') as f: + with open('C:\\Users\\Ducky\\OneDrive\\Документы\\GitHub\\202-Advanced-Python-3\\test.txt') as f: formulas = list() for item in f: formulas.append(re.findall( From 5a20dde1ccd30f92e8327bf8cdfab758273541c2 Mon Sep 17 00:00:00 2001 From: StrangL <37173803+StrangL@users.noreply.github.com> Date: Wed, 4 May 2022 16:36:30 +0300 Subject: [PATCH 4/7] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BF=D0=B5=D1=80=D0=B2=D0=B0=D1=8F=20=D1=80?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=87=D0=B0=D1=8F=20=D0=B2=D0=B5=D1=80=D1=81?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B8=20=D1=82=D0=B5=D1=81=D1=82=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=BD=D0=B5=D1=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit нет изменений греческих символов --- example.tex | 8 ++++++++ versionV1.py | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 example.tex create mode 100644 versionV1.py diff --git a/example.tex b/example.tex new file mode 100644 index 0000000..d54dee9 --- /dev/null +++ b/example.tex @@ -0,0 +1,8 @@ +$$x=a+b$$ a+c=b $$a+b=\phi$$asdasdas +$$n=v+n*b$$ +\begin{equation}b=a+t+y*c\end{equation} 123123123 +\(m=n+k\) asdasdasdasd +$$x=\integrate(x/(x**2+2*x+1), x)$$ +skjvbbksjvk $$h=k+i*i$$ ekvjeorjvasdekvj +$j=k+y*y$ +1231231$$n=\phi+y$$123123 \ No newline at end of file diff --git a/versionV1.py b/versionV1.py new file mode 100644 index 0000000..29a0ef3 --- /dev/null +++ b/versionV1.py @@ -0,0 +1,34 @@ +import sympy.abc +import re + + +def parsing(): + with open('example.tex') as f: + data = list(filter(None, f.read().split('\n'))) + formulas = list() + for item in data: + item = item.replace('$$', '$') + formulas.append(re.findall(r'\\begin{equation}(.*?)\\end{equation}', item)) + formulas.append(re.findall(r'\$([^$]+)\$', item)) + + i = 0 + while i < len(formulas): + if len(formulas[i]) == 0: + formulas.pop(i) + i -= 1 + i += 1 + + for i in range(len(formulas)): + for j in range(len(formulas[i])): + temp = formulas[i][j].replace('\\', '') + formulas[i][j] = temp + print(formulas) + return formulas + + +if __name__ == '__main__': + data = parsing() + for i in range(len(data)): + for j in range(len(data[i])): + expr = sympy.Eq(*map(sympy.sympify, (data[i][j].split("=")))) + print(expr) \ No newline at end of file From 8cb608010c901268676131c09b23382af7939040 Mon Sep 17 00:00:00 2001 From: Egisess Date: Sun, 15 May 2022 23:12:09 +0300 Subject: [PATCH 5/7] =?UTF-8?q?=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/main.py b/main.py index ca8f03e..c0d5dcf 100644 --- a/main.py +++ b/main.py @@ -75,6 +75,7 @@ greek_dict = dict(zip(latex_greek, unicode_greek)) + def healer(line: str): for greek_letter in latex_greek: while greek_letter in line: @@ -97,7 +98,7 @@ def parsing(): i += 1 for i in range(len(formulas)): - formulas[i] = formulas[i][j].replace('\\', '') + formulas[i] = formulas[i][0].replace('\\', '') for greek_letter in latex_greek: while greek_letter in formulas[i]: From 423346f5932607e14392a584e80e967609804053 Mon Sep 17 00:00:00 2001 From: Egisess Date: Tue, 17 May 2022 13:29:23 +0300 Subject: [PATCH 6/7] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BD=D0=BE=D0=B2=D1=8B=D0=B9=20=D0=B0=D1=80=D0=B3?= =?UTF-8?q?=D1=83=D0=BC=D0=B5=D0=BD=D1=82=20=D1=84=D1=83=D0=BD=D0=BA=D1=86?= =?UTF-8?q?=D0=B8=D0=B8=20parsing=20(=D0=B8=D0=BC=D1=8F=20=D1=84=D0=B0?= =?UTF-8?q?=D0=B9=D0=BB=D0=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/main.py b/main.py index c0d5dcf..7451275 100644 --- a/main.py +++ b/main.py @@ -76,14 +76,8 @@ greek_dict = dict(zip(latex_greek, unicode_greek)) -def healer(line: str): - for greek_letter in latex_greek: - while greek_letter in line: - line = line.replace(greek_letter, greek_dict[greek_letter]) - - -def parsing(): - with open('C:\\Users\\Ducky\\OneDrive\\Документы\\GitHub\\202-Advanced-Python-3\\test.txt') as f: +def parsing(line : str): + with open(line) as f: formulas = list() for item in f: formulas.append(re.findall( @@ -122,4 +116,4 @@ def parsing(): if __name__ == '__main__': - data = parsing() + data = parsing('C:\\Users\\Ducky\\OneDrive\\Документы\\GitHub\\202-Advanced-Python-3\\test.txt') From 8c1ee347be8eafc16cbdc74a7c6f189ed4e4020f Mon Sep 17 00:00:00 2001 From: StrangL <37173803+StrangL@users.noreply.github.com> Date: Wed, 25 May 2022 09:20:08 +0300 Subject: [PATCH 7/7] =?UTF-8?q?=D0=B4=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example.tex | 4 +++- versionV1.py | 9 ++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/example.tex b/example.tex index d54dee9..dd270f8 100644 --- a/example.tex +++ b/example.tex @@ -1,7 +1,9 @@ $$x=a+b$$ a+c=b $$a+b=\phi$$asdasdas $$n=v+n*b$$ \begin{equation}b=a+t+y*c\end{equation} 123123123 -\(m=n+k\) asdasdasdasd +\begin{equation} +m=n+k*k +\end{equation} $$x=\integrate(x/(x**2+2*x+1), x)$$ skjvbbksjvk $$h=k+i*i$$ ekvjeorjvasdekvj $j=k+y*y$ diff --git a/versionV1.py b/versionV1.py index 29a0ef3..3cec5a5 100644 --- a/versionV1.py +++ b/versionV1.py @@ -4,12 +4,11 @@ def parsing(): with open('example.tex') as f: - data = list(filter(None, f.read().split('\n'))) + data = f.read() formulas = list() - for item in data: - item = item.replace('$$', '$') - formulas.append(re.findall(r'\\begin{equation}(.*?)\\end{equation}', item)) - formulas.append(re.findall(r'\$([^$]+)\$', item)) + data = data.replace('$$', '$') + formulas.append(re.findall(r'\\begin{equation}([\s\S]*?)\\end{equation}', data)) + formulas.append(re.findall(r'\$([^$]+)\$', data)) i = 0 while i < len(formulas):