2013-07-08 9 views
5

シンボリック式をtxtファイルに書き込む最良の方法は何ですか(txtファイルを読み込んだ後でシンボリック式を使うことができます)?Python - txtファイルにシンボリック式(sympy)を書く

たとえば、numpyのsavetxt()関数に相当するsympyはありますか?

from sympy import Symbol 
a=Symbol('a') 
b=Symbol('b') 

y=a+3*b 

どのように私はきちんと書くとyを読むことができます。たとえば

? (あなたが最もPythonオブジェクトを保存することができますよう)

答えて

3

は、あなたはそれをファイルに保存するためにpickleライブラリを使用することができます。

import pickle 
with open("y.txt", "w") as outf: 
    pickle.dump(y, outf) 

あなたが後でSymPyで

with open("y.txt") as inf: 
    y = pickle.load(inf) 
+0

ありがとうございます! – Baekel

+1

多くのSymPy式で 'pickle'がチョークすることに注意してください。 'dill'はより良い仕事をします。 – asmeurer

7

str(expr)でそれをロードしますすべきあなたの表現に関するほとんどの情報を保存します。利点は、人間が読めることです。読み込みを行う最も良い方法は、str(Rational(1, 2))0.5と直接評価されるので、sympify()をコピー貼りまたはevalとするのではなく、str(Rational(1, 2))とすることです。

さらに詳しい出力を与えるsrepr()(symPyのバージョンrepr)もあります。

注意しなければならないことは、現時点でSymbolsの仮定に関する情報(Symbol('x', real=True))は保存されないので、必要ならばpickleやdillのようなものを使用する必要があります。

関連する問題