我是一名正在学习Python编程的初学者。目前我在文件练习中遇到了困难(这些都是我需要完成的设置任务,而不是我想做的任何事情。不幸的是,这也意味着我可能无法使用任何对我来说复杂的快捷方式)。
我目前使用的是Python 3.2.2。
我需要两个不同的程序。一个是输入用户键入的内容(姓名和出生日期),并将其放入列表记录中并将其写入二进制文件。另一个是读取该文件并使用填充打印成表格。
代码:
第一个
import pickle
class newperson():
def __init__(self):
self.name = ""
self.dob = ""
stop = False
people = []
print("When you want to stop just hit enter")
count = 0
while stop == False:
name = input("Please Enter the name: ")
if len(name) == 0:
stop = True
else:
people.append(newperson())
people[count].name = name
people[count].dob = input("Please enter their DOB: ")
count = count + 1
file = open("ex9.4.dat", "wb")
pickle.dump(people,file)
file.close()
第二点:
import pickle
myfile = open("ex9.4.dat", "rb")
people = pickle.load(myfile)
print("{0:<15}{1}".format("Name","DOB"))
for item in people:
print("{0:<15}{1}".format(item.name,item.dob))
问题在于当我试图运行第二个程序时,出现了以下错误:
AttributeError: 'module' object has no attribute 'newperson'
在
people = pickle.load(myfile)
很不幸,当我在寻找其他问题的答案时,要么没有解决方案可用,要么不适用于我,或者大多数解决方案都超出了我的理解范围。
我做错了什么?
提前感谢您的帮助。