2016-09-14 6 views
1

과 함께 작동하지 않는 이유 피클 파일이 수정되지 않은 이유는 무엇입니까? 하지만 내가 그 라인을 주석 처리하지 않으면 그것은 효과가 있니?덤핑 피클이 rb +

with open(PATH, "rb+") as fp: 
    mocks_pickle = pickle.load(fp) 
    mocks_pickle['aa'] = '123' 
    # pickle.dump(mocks_pickle, open(PATH, 'wb')) 
    pickle.dump(mocks_pickle, fp) 
+0

하지만 r +는 읽기 및 쓰기 용 파일을 엽니 다. – HereHere

답변

2

개체를 덤프하기 전에 fp.seek(0)으로 파일의 시작 부분을 찾아야합니다.

당신이 찾지 않으려는 경우 파일 끝에 새 피클을 추가하십시오. 그리고 파일에서 pickle.load 때 당신은 파일에있는 첫 번째를 얻을.

with open(PATH, "rb+") as fp: 
    mocks_pickle = pickle.load(fp) 
    mocks_pickle['aa'] = '123' 
    fp.seek(0) 
    pickle.dump(mocks_pickle, fp)