2017-02-15 3 views
1

Мой вопрос касается сохранения значений переменных в Python. В частности, у меня есть два разных сценария, которые вычисляют одни и те же вещи двумя разными способами. Я хочу, чтобы сравнить значения переменных, возвращаемых из двух сценариев. Поэтому мне было интересно, могу ли я запустить первый скрипт, сохранить значения одной из моих переменных (скажем, матрицу V), а затем запустить второй скрипт и сравнить значения для той же переменной, что и их второй сценарий.Сохранить переменные в Python

  • пункт Список
+5

Отлично! Теперь идите и реализуйте его, если вы столкнулись с трудностями, а затем отправляйте свой код с ошибками. – MYGz

+3

Почему бы вам не сделать это? Что вы пробовали? –

+0

Я думаю, вы можете искать структурированный формат файла, такой как 'yaml' или' json', который поддерживает сохранение/загрузку переменных python? – fnokke

ответ

2

Как @claymore сказал в комментариях, это может быть сделано с рассола. Вы храните переменную, которую вы хотите от каждого, в рассол, а затем захватываете объекты рассола из сценария сравнения.

В качестве примера ниже

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

Смежные вопросы