2013-07-08 37 views
5

Cách tốt nhất để viết biểu thức biểu tượng vào tệp txt (để tôi có thể sử dụng biểu thức biểu tượng sau khi đọc tệp txt) là gì?Python - viết biểu thức biểu tượng (sympy) vào tập tin txt

Có tương đương sympy với hàm savetxt() của numpy không?

ví dụ:

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

y=a+3*b 

Làm thế nào tôi có thể đúng cách viết và đọc y?

Trả lời

3

Bạn có thể sử dụng thư viện pickle để lưu trữ nó vào một tập tin (như bạn có thể tiết kiệm nhất đối tượng Python):

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

Bạn sau đó sẽ tải nó với

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

Cảm ơn bạn rất nhiều! – Baekel

+1

Lưu ý rằng 'pickle' chokes trên nhiều biểu thức SymPy. 'dill' làm một công việc tốt hơn. – asmeurer

7

str(expr) trong SymPy nên lưu hầu hết thông tin về biểu thức của bạn. Ưu điểm là nó có thể đọc được. Cách tốt nhất để tải từ nó là sử dụng sympify(), thay vì chỉ sao chép-dán hoặc eval, vì ví dụ: str(Rational(1, 2)) sẽ cung cấp cho 1/2, sẽ đánh giá trực tiếp 0.5.

Ngoài ra còn có chức năng srepr() (phiên bản của SymPy là repr) mang lại kết quả tiết kiệm hơn.

Một điều cần lưu ý là không lưu thông tin về giả định trên Biểu tượng tại thời điểm này (Symbol('x', real=True)), vì vậy nếu bạn cần điều đó, bạn nên sử dụng thứ gì đó như dưa chua hoặc thì là.

Các vấn đề liên quan