import csv import pickle ### NOTICE: csv only accept two colomn input. but accept multi-time input. # 1_2_3, 1 is action, 2 is supply object, 3 is accept object def update_dict_csv(term_dict, f): for rows in csv.reader(f): if rows[0] in term_dict: if rows[1] not in term_dict[rows[0]]: term_dict[rows[0]] = term_dict[rows[0]]+[rows[1]] else: term_dict[rows[0]]=[rows[1]] pass def export_dict_csv(term_dict, f): for key, val in term_dict.items(): csv.writer(f).writerow([key, val]) pass def save_dict_pickle(term_dict, f): pickle.dump(term_dict, f, pickle.HIGHEST_PROTOCOL) def update_csv_pickle(pickle_f, csv_f): term_dict = pickle.load(pickle_f) for rows in csv.reader(csv_f): if rows[0] in term_dict: if rows[1] not in term_dict[rows[0]]: term_dict[rows[0]] = term_dict[rows[0]]+[rows[1]] else: term_dict[rows[0]]=[rows[1]] #save to pickle file, highest protocal to get better performance pickle.dump(term_dict, pickle_f, pickle.HIGHEST_PROTOCOL) #demo term_dict_sc2 = {} with open("./finetune_data/dict_enzh.csv", 'r', encoding='utf-8') as f: update_dict_csv(term_dict_sc2,f) with open("../test.csv", "w", encoding='utf-8') as w: export_dict_csv(term_dict_sc2,w) ## for load pickle, just: # pickle.load(f)