2017-02-15 6 views
1

Meine Frage betrifft das Speichern von Werten von Variablen in Python. Genauer gesagt habe ich zwei verschiedene Skripte, die die gleichen Dinge auf zwei verschiedene Arten berechnen. Ich möchte die Werte der Variablen vergleichen, die von den beiden Skripten zurückgegeben werden. Also habe ich mich gefragt, ob ich das erste Skript ausführen kann, die Werte einer meiner Variablen speichern kann (sagen wir eine Matrix V) und dann das zweite Skript ausführen und die Werte für dieselbe Variable vergleichen, wie sie vom zweiten Skript berechnet werden.Speichern von Variablen in Python

  • Liste item
+5

Großartig! Gehen Sie nun vor und implementieren Sie es, wenn Sie Schwierigkeiten haben, dann veröffentlichen Sie Ihren Code mit Fehlern. – MYGz

+3

Warum können Sie das nicht tun? Was hast du probiert? –

+0

Ich glaube, Sie suchen nach einem strukturierten Dateiformat wie 'yaml' oder' json', das das Speichern/Laden von Python-Variablen unterstützt? – fnokke

Antwort

2

Wie @claymore sagte in den Kommentaren, kann dies mit Gurke erfolgen. Sie speichern die gewünschte Variable jeweils in einem Pickle und nehmen dann die Pickle-Objekte aus dem Vergleichsskript.

Ein Beispiel ist unten

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 

source: https://wiki.python.org/moin/UsingPickle

Verwandte Themen