2015-05-26 50 views
0

我試圖將用戶輸入數據存儲在另一個python文件的dictonary中。這是我的第一個真正的Python項目,所以如果你有任何關於簡化我在做什麼的建議,請建議。謝謝!將.py文件中的數據(基於類)從另一個.py文件移動到另一個文件

我的作業類:

class Assignment(object): 
def __init__(self, assignment_name, due_date): 
    self.assignment_name = assignment_name 
    self.due_date = due_date 

def getassignment_name(self): 
    return self.assignment_name 

def getdue_date(self): 
    return self.due_date 

def __str__(xself): 
    return "%s is due on %s" % (self.assignment_name, self.due_date) 

我的用戶輸入:

def questions(): 

    raw_input("Name Of Assignment?") 

    raw_input("Due Date") 




assignment_name = raw_input("Name Of Assignment?") 

due_date = raw_input("Due Date") 


assignment_data = Assignment(assignment_name,due_date) 

將數據移動到dictonary在另一個.py文件的嘗試。

f = open(assignments.py) 
f.write(str(assignment_data)) 
f.close() 

print assignment_data 

print "ok" 

f = open(assignments.py) 

assignment_data = eval(f.read()) 

f.close() 
+0

你沒有存儲字典嗎?你正在儲存'Assignment'對象嗎? – ZdaR

+0

@anmol_uppal在字典中保存賦值對象 –

+0

是否有任何具體原因將內容寫入到'.py'文件?你可以用'Pickle'代替? – ZdaR

回答

0

泡菜也將工作,用於從模塊1存儲,或甚至相同節目的不同運行:: 之間程序之間的數據:

import pickle 
f = open(file_Name,'wb') 
pickle.dump(assignment_data, f) 
f.close() 
從模塊2

import pickle f = open(file_Name,'rb') pickle.load(assignment_data, f) f.close()

(更優雅地用'......')

pickle.load知道它正在獲取字典,它需要使用二進制模式。

0
# create dictionary 
assignment_data = {"name": "jane", "date": "late"} 

# save dictionary 
with open("assignments.py", "wt") as f: 
    f.write(repr(assignment_data)) 

# load dictionary 
with open("assignments.py", "rt") as f: 
    assignment_data = eval(f.read()) 
    print assignment_data 
相關問題