2017-02-15 88 views
1

我的问题是关于在Python中保存变量的值。更具体地说,我有两种不同的脚本,用两种不同的方式计算相同的东西。我想要做的是比较两个脚本返回的变量的值。所以我想知道是否我可以运行第一个脚本,保存其中一个变量的值(比方说矩阵V),然后运行第二个脚本并比较第二个脚本计算的相同变量的值。在Python中保存变量

  • 列表项
+5

太棒了!现在继续实施它,如果您遇到困难,然后发布错误的代码。 – MYGz

+3

为什么你不能这样做?你有什么尝试? –

+0

我想你可能正在寻找一种结构化的文件格式,例如'yaml'或'json',它支持保存/加载python变量? – fnokke

回答

2

就像@claymore说的意见,这可以用泡菜来完成。您将您想要的变量存储到pickle中,然后从比较脚本中获取pickle对象。

下面是一个例子

script_a.py

# Save a dictionary into a pickle file. 
import pickle 

def funca(): 
    favorite_color = { "lion": "yellow", "kitty": "red" } 
    with open("a.pickle","wb") as f: 
     pickle.dump(favorite_color, f) 

funca() 

script_b.py

# Save a dictionary into a pickle file. 
import pickle 

def funcb(): 
    favorite_color = { "lion": "blue", "kitty": "orange" } 
    with open("b.pickle","wb") as f: 
     pickle.dump(favorite_color, f) 

funcb() 

compare.py

# Load the dictionary back from the pickle file. 
import pickle 
import os 

os.system("python script_a.py") 
os.system("python script_b.py") 

a_fav = pickle.load(open("a.pickle", "rb")) 
b_fav = pickle.load(open("b.pickle", "rb")) 

print "script 1 had favorite = ", a_fav 
print "script 2 had favorite = ", b_fav 

来源:https://wiki.python.org/moin/UsingPickle