4
我喜歡例外的UnicodeDecodeError 酸洗提出時(名單)EventFrame的對象有一個成員參與者那是一個空集。_pickle.UnpicklingError:找不到MARK
class EventFrame:
"""Frame for an event"""
def __init__(self, id=0):
...
self.participants = set()
...
當它是不是空的,沒有問題,所以我第一次參加向東西,然後醃它。但在運行期間,可能會發生參與者再次被清空。
所以我試圖在這種情況下手動刪除對象。之後,我用醃菜再次甩了它。
if len(frame.participants) == 0:
frame_list.remove(frame)
似乎這不是一個很好的選擇,因爲這UnpicklingError有人提出:
....
frame_list.append (pickle.load(f))
_pickle.UnpicklingError: could not find MARK
我不知道這意味着什麼,我無法找到任何關於有用它。
注意這個錯誤是在加載pickle文件時引發的。
這裏是我picklng和取儲存方式:
f = open("myfile", "r+b")
frame_list = []
while 1:
try:
frame_list.append (pickle.load(f))
frame_list = sum(frame_list, [])
except EOFError:
break
f.close()
和傾倒:
f = open("myfile", "r+b")
pickle.dump(frame_list, f)
f.close()
我必須刪除該文件並將其新建,然後再轉儲frame_list。這樣可行。 – Sadik