import pickle input_file = "/vulcanscratch/lzhao/repos/collaborative-experts/data/MSRVTT/high-quality/structured-symlinks/aggregated_text_feats/w2v_MSRVTT_openAIGPT_original.pickle" output_file = "/vulcanscratch/lzhao/repos/collaborative-experts/data/MSRVTT/high-quality/structured-symlinks/aggregated_text_feats/w2v_MSRVTT_openAIGPT.pickle" switch_videos = [["video7960", "video9648"]] objects = [] with (open(input_file, "rb")) as openfile: while True: try: objects.append(pickle.load(openfile)) except EOFError: break for pairs in switch_videos: v1, v2 = pairs tmp = objects[0][v2] objects[0][v2] = objects[0][v1] objects[0][v1] = tmp with open(output_file, 'wb') as handle: pickle.dump(objects[0], handle, protocol=pickle.HIGHEST_PROTOCOL)