我寫了兩個腳本Write.py
和Read.py
。使用pickle.load()方法無法讀取附加數據
Write.py
打開friends.txt
追加模式,並採取輸入name
,email
,phone no
然後轉儲使用pickle.dump()
法字典到文件中,每一件事情在這個腳本工作正常。
Read.py
在讀取模式下打開friends.txt
,然後使用pickle.load()
方法將內容加載到字典中,並顯示字典的內容。
主要問題是在Read.py
腳本中,它只顯示舊數據,它從不顯示附加數據?
Write.py
#!/usr/bin/python
import pickle
ans = "y"
friends={}
file = open("friends.txt", "a")
while ans == "y":
name = raw_input("Enter name : ")
email = raw_input("Enter email : ")
phone = raw_input("Enter Phone no : ")
friends[name] = {"Name": name, "Email": email, "Phone": phone}
ans = raw_input("Do you want to add another record (y/n) ? :")
pickle.dump(friends, file)
file.close()
Read.py
#!/usr/bin/py
import pickle
file = open("friends.txt", "r")
friend = pickle.load(file)
file.close()
for person in friend:
print friend[person]["Name"], "\t", friend[person]["Email"] , "\t", friend[person]["Phone"]
什麼一定是問題,代碼看起來很好。有人能指出我正確的方向嗎?
謝謝。
我從來不知道我可以通過使用'with'關鍵字來避免使用'file.close()'。非常感謝。 – Searock 2010-10-24 10:01:25
@Searock - 是的,你有一個明確縮進的塊,文件打開。只需快速閱讀你所需要的一切,它就會結束。 – eumiro 2010-10-24 10:02:23
如何使用'pickle.load()'將字典與鍵作爲名稱進行追加。它給了我這個字典錯誤'AttributeError:'dict'object has no attribute'append'' – Searock 2010-10-24 10:33:41