2015-05-26 53 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 
相关问题