import csv import codecs from typing import Counter import pandas as pd import re import os import io import tokenize output = open('luoghi_ASPO_tutti_ID.csv', 'w') csvwriter = csv.writer(output) params = ['ID_PROVINCIA','EVENTO_PROVINCIA','EVENTO_PROVINCIA_upper', 'ID_RESTORE_comune','EVENTO_COMUNE','EVENTO_COMUNE_upper', 'ID_RESTORE_microtoponimo','EVENTO MICROTOPONIMO','EVENTO_MICROTOPONIMO_upper', 'ID_edificio','EVENTO edificio','EVENTO edificio upper', 'ID_parrocchia','EVENTO PARROCCHIA','EVENTO PARROCCHIA upper', 'ID_micromicrotoponimo','EVENTO micro microtoponimo'] csvwriter.writerow(params) def get_id_provincia (input): link_file = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/merge_luoghi_ASPO.csv') reader = csv.DictReader(link_file) for row in reader: if input != "" and " ": control = row['toponimo_PROVINCIA'] if (input == control): return (row['ID_PROVINCIA']) else: return "" def get_upper_provincia (input): link_file = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/merge_luoghi_ASPO.csv') reader = csv.DictReader(link_file) for row in reader: if input != "" and " ": control = row['toponimo_PROVINCIA'] if (input == control): return (row['toponimo_PROVINCIA_upper']) else: return "" def get_id_comune (input): link_file = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/merge_luoghi_ASPO.csv') reader = csv.DictReader(link_file) for row in reader: if input != "" and " ": control = row['toponimo_COMUNE'] if (input == control): return (row['ID_RESTORE_comune']) else: return "" def get_upper_comune (input): link_file = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/merge_luoghi_ASPO.csv') reader = csv.DictReader(link_file) for row in reader: if input != "" and " ": control = row['toponimo_COMUNE'] if (input == control): return (row['toponimo_COMUNE_upper']) else: return "" def get_id_microtoponimo (input): link_file = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/merge_luoghi_ASPO.csv') reader = csv.DictReader(link_file) for row in reader: if input != "" and " ": control = row['MICROTPONIMO'] if (input == control): return (row['ID_RESTORE_microtoponimo']) else: return "" def get_upper_microtoponimo (input): link_file = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/merge_luoghi_ASPO.csv') reader = csv.DictReader(link_file) for row in reader: if input != "" and " ": control = row['MICROTPONIMO'] if (input == control): return (row['MICROTOPONIMO_upper']) else: return "" def get_id_edificio (input1, input2, input3, input4): link_file = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/ID_edifici.csv') reader = csv.DictReader(link_file) for row in reader: if input != "" and " ": control1 = row['EVENTO PROVINCIA'] control2 = row['EVENTO COMUNE'] control3 = row ['EVENTO MICROTOPONIMO'] control4 = row ['EVENTO edificio'] if (input1 == control1) and (input2 == control2) and (input3 == control3) and (input4 == control4): return (row['ID_edificio']) else: return "" def get_id_parrocchia (input1, input2, input3, input4, input5): link_file = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/ID_parrocchie.csv') reader = csv.DictReader(link_file) for row in reader: if input != "" and " ": control1 = row['EVENTO PROVINCIA'] control2 = row['EVENTO COMUNE'] control3 = row ['EVENTO MICROTOPONIMO'] control4 = row ['EVENTO edificio'] control5 = row ['EVENTO PARROCCHIA'] if (input1 == control1) and (input2 == control2) and (input3 == control3) and (input4 == control4) and (input5 == control5): return (row['ID_parrocchia']) else: return "" def get_id_micromicro (input1, input2, input3, input4, input5, input6): link_file = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/ID_Micromicro.csv') reader = csv.DictReader(link_file) for row in reader: if input != "" and " ": control1 = row['EVENTO PROVINCIA'] control2 = row['EVENTO COMUNE'] control3 = row ['EVENTO MICROTOPONIMO'] control4 = row ['EVENTO edificio'] control5 = row ['EVENTO PARROCCHIA'] control6 = row ['EVENTO micro microtoponimo'] if (input1 == control1) and (input2 == control2) and (input3 == control3) and (input4 == control4) and (input5 == control5) and (input6 == control6): return (row['ID_micromicrotoponimo']) else: return "" csv_luoghi = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/luoghi - Tutto_Clean.csv') reader = csv.DictReader(csv_luoghi) for row in reader: line = [] EVENTO_PROVINCIA = row['EVENTO PROVINCIA'] EVENTO_PROVINCIA_upper = get_upper_provincia(EVENTO_PROVINCIA) ID_PROVINCIA = get_id_provincia(EVENTO_PROVINCIA) EVENTO_COMUNE = row['EVENTO COMUNE'] EVENTO_COMUNE_upper = get_upper_comune(EVENTO_COMUNE) ID_RESTORE_comune = get_id_comune(EVENTO_COMUNE) EVENTO_MICROTOPONIMO = row['EVENTO MICROTOPONIMO'] EVENTO_MICROTOPONIMO_upper = get_upper_microtoponimo(EVENTO_MICROTOPONIMO) ID_RESTORE_microtoponimo = get_id_microtoponimo(EVENTO_MICROTOPONIMO) EVENTO_EDIFICIO = row["EVENTO edificio"] ID_EDIFICIO = get_id_edificio(EVENTO_PROVINCIA, EVENTO_COMUNE, EVENTO_MICROTOPONIMO, EVENTO_EDIFICIO) EVENTO_EDIFICIO_UP = row["EVENTO edificio upper"] EVENTO_PARROCCHIA = row["EVENTO PARROCCHIA"] ID_PARROCCHIA = get_id_parrocchia(EVENTO_PROVINCIA, EVENTO_COMUNE, EVENTO_MICROTOPONIMO, EVENTO_EDIFICIO, EVENTO_PARROCCHIA) EVENTO_PARROCCHIA_UP = row['EVENTO PARROCCHIA upper'] EVENTO_MICROMICRO = row ['EVENTO micro microtoponimo'] ID_MICROMICRO = get_id_micromicro(EVENTO_PROVINCIA, EVENTO_COMUNE, EVENTO_MICROTOPONIMO, EVENTO_EDIFICIO, EVENTO_PARROCCHIA, EVENTO_MICROMICRO) line.append (ID_PROVINCIA) line.append (EVENTO_PROVINCIA) line.append (EVENTO_PROVINCIA_upper) line.append (ID_RESTORE_comune) line.append (EVENTO_COMUNE) line.append (EVENTO_COMUNE_upper) line.append (ID_RESTORE_microtoponimo) line.append (EVENTO_MICROTOPONIMO) line.append (EVENTO_MICROTOPONIMO_upper) line.append (ID_EDIFICIO) line.append (EVENTO_EDIFICIO) line.append (EVENTO_EDIFICIO_UP) line.append (ID_PARROCCHIA) line.append (EVENTO_PARROCCHIA) line.append (EVENTO_PARROCCHIA_UP) line.append (ID_MICROMICRO) line.append (EVENTO_MICROMICRO) csvwriter.writerow(line) #print (line) output.close()