id_paturle = [] member_lines = [] with open('E:/Documents/GitHub/GeneaLetter/src/data/members.csv', 'r', encoding='utf-8') as members: first_line = True for line in members: if first_line: first_line = False continue line = line.strip() info = line.split(';') id_paturle.append(int(info[0])) member_lines.append(line) id_translation = {} id_paturle = sorted(id_paturle) for i in range(0, len(id_paturle)): id_translation[id_paturle[i]] = i with open('E:/Documents/GitHub/GeneaLetter/src/data/members.csv', 'r', encoding='utf-8') as ori_members: with open('E:/Documents/GitHub/GeneaLetter/src/data/members_new.csv', 'w', encoding='utf-8') as new_members: first_line = True for line in ori_members: if first_line: new_members.write(line) first_line = False continue line = line.strip() info = line.split(';') info[0] = str(id_translation[int(info[0])]) line = ";".join(info) + "\n" new_members.write(line) id_mariage = [] with open('E:/Documents/GitHub/GeneaLetter/src/data/mariages.csv', 'r', encoding='utf-8') as old_mariage: with open('E:/Documents/GitHub/GeneaLetter/src/data/mariages_new.csv', 'w', encoding='utf-8') as new_mariage: first_line = True for line in old_mariage: if first_line: new_mariage.write(line) first_line = False continue line = line.strip() info = line.split(';') id_mariage.append(int(info[0])) info[1] = str(id_translation[int(info[1])]) info[2] = str(id_translation[int(info[2])]) line = ";".join(info) + "\n" new_mariage.write(line) id_translation = {} id_mariage = sorted(id_mariage) for i in range(0, len(id_mariage)): id_translation[id_mariage[i]] = i with open('E:/Documents/GitHub/GeneaLetter/src/data/mariages_new.csv', 'r', encoding='utf-8') as old_mariage: with open('E:/Documents/GitHub/GeneaLetter/src/data/mariages_ok.csv', 'w', encoding='utf-8') as new_mariage: first_line = True for line in old_mariage: if first_line: new_mariage.write(line) first_line = False continue line = line.strip() info = line.split(';') info[0] = str(id_translation[int(info[0])]) line = ";".join(info) + "\n" new_mariage.write(line)