def ajouter_mails(liste_objets, liste_mail_et_noms): #On parcourt nos instances d'apprenants dans la liste d'objets apprenants : for x in liste_objets: #On boucle sur la liste de mails qui doit être structurée ainsi [ mail, [ nom_généré, prenom_généré]] for y in liste_mail_et_noms: #On vérifie si le prénom (nettoyé) de l'objet est égal au prénom généré à partir du mail if ud(x.prenom.lower()).replace("'", '') == y[1][0]: #On vérifie si le nom (nettoyé) de l'objet est égal au nom généré à partir du mail if ud(x.nom.lower()).replace("'", '') == y[1][1]: #Si tout correspond, on peut attribuer le mail de rang y à l'objet en question. setattr(x, "mail", y[0]) return liste_objets
def cleanup(d_df): global f_path, file_list lis_val = list() if d_df != 1: par = None else: par = 'utf-8' with open(f_path + file_list[d_df] + '.csv', encoding=par) as m_file: reader = csv.reader(m_file) gh = 0 for item in reader: gh += 1 if gh == 1 and d_df == 0: try: item[0] = ud(item[0]).split('?')[1] except: pass lis_val.append(item) #Cleaning up list if d_df == 3 and 'Aggregated engagement metrics for your' in lis_val[0][0]: lis_val.pop(0) t_list = list() for element in lis_val: t_list.append([]) for items in element: if len(items) == 0: k_items = 0 else: try: if float(items) == int(float(items)): k_items = int(float(items)) else: k_items = float(items) except: try: k_items = str(ud(items)) except: k_items = str(items) t_list[-1].append(k_items) with open(f_path + file_list[d_df] + '.csv', 'w', newline='') as outfile: mywriter = csv.writer(outfile) for row in t_list: mywriter.writerow(row)
def generate_cypher_data(file, info_dict, cur_year): cypher_create_wrestlers = [] cypher_create_participants = [] cypher_create_elims = [] for inf in info_dict: #print(inf) time_val = clean_time_string(inf['time_in']) #time_val.second time_val_2 = time_val - dt(1900, 1, 1) #print(time_val_2.total_seconds()) #print(time_val) normalized = ud(inf['wrestler']) alias = normalized.replace(" ", "") alias = re.sub("\W*", "", alias) cypher_create_wrestlers.append("MERGE (" + alias + ":Wrestler {name:'" + normalized + "'})\n") if 'brand' in inf: cypher_create_participants.append("CREATE (" + alias + ")-[:WAS_IN{draw:" + inf['draw'] + ", brand:" + inf['brand'] + "}]->(RR" + cur_year + ")\n") else: cypher_create_participants.append("CREATE (" + alias + ")-[:WAS_IN{draw:" + inf['draw'] + "}]->(RR" + cur_year + ")\n") #print("time in: " + inf['time_in']) if type(inf['eliminators']) is list: for elim in inf['eliminators']: cypher_create_elims.append("CREATE (" + alias + ")-[:ELIMINATED_BY {order:" + inf['order'] + ", time:\"" + str(time_val_2.total_seconds()) + "\"}]->(" + elim + ")\n") else: cypher_create_elims.append("CREATE (" + alias + ")-[:ELIMINATED_BY {order:" + inf['order'] + ", time:\"" + str(time_val_2.total_seconds()) + "\"}]->(" + inf['eliminators'] + ")\n") for ccw in cypher_create_wrestlers: file.write(ccw) file.write("//Participations\n") for ccp in cypher_create_participants: file.write(ccp) file.write("//Eliminations\n") for cce in cypher_create_elims: file.write(cce) file.close()
map(os.makedirs, map(concat_path, subfolders)) if __name__ == '__main__': parser = get_parser() args = parser.parse_args() if args.do == 'alumnifolders': PATH = join(PATH_D4E, 'alumni') list_file = join(PATH, 'alumnilist.xlsx') if exists(list_file): df = pd.read_excel(list_file, dtype={ 'cu': 'object', 'name': 'object', 'surname': 'object' }) for i, r in df.iterrows(): if (not pd.isnull(r['name'])) and (not pd.isnull( r['surname'])): fname = '_'.join([ str(r['cu']), ud(r['name'].split(' ')[0]), ud(r['surname'].split(' ')[0]) ]) print(fname) try: os.mkdir(join(PATH, fname)) except Exception as e: print('Ya existe el directorio ' + fname)
import pandas as pd from unidecode import unidecode as ud #get driver standings > csv all_drivers = pd.read_html( 'https://www.formula1.com/en/results.html/2019/drivers.html') all_drivers = all_drivers[0] all_drivers = all_drivers.drop(['Unnamed: 0', 'Unnamed: 6'], axis=1) all_drivers.to_csv('all_drivers.csv') #create empty DataFrame f1_2019 = pd.DataFrame() #get and append individual driver dfs > csv for i in all_drivers['Driver']: name = ud(i).split() tag = name[0][:3].upper() + name[1][:3].upper() + '01' driver = pd.read_html( 'https://www.formula1.com/en/results.html/2019/drivers/' + tag + '/' + name[0].lower() + '-' + name[1].lower() + '.html') driver = driver[0].drop(['Unnamed: 0', 'Unnamed: 6'], axis=1) driver['Date'] = pd.to_datetime(driver['Date']) driver['Name'] = name[1] driver['Total PTS'] = driver['PTS'].cumsum() f1_2019 = f1_2019.append(driver) f1_2019.to_csv('f1_2019.csv') #get fastest lap df > csv fastest_lap = pd.read_html( 'https://www.formula1.com/en/results.html/2019/fastest-laps.html')
def unidecode(string): return ud(string)
print(bdd.is_connected()) liste_apprenants = [] curseur.execute('SELECT id_apprenant, nom, prenom, mail FROM apprenants;') for x in curseur.fetchall(): liste_apprenants.append(x) objets = [] for x in liste_apprenants: nouvelle_instance = Apprenant(x) objets.append(nouvelle_instance) for x in range(0, len(objets)): for y in range(0, len(liste_mails)): if ud(objets[x].prenom.lower()).replace("'", '') == liste_mails[y][1][0]: if ud(objets[x].nom.lower()).replace("'", '') == liste_mails[y][1][1]: objets[x].mail = liste_mails[y][0] for x in range(0, len(objets)): curseur.execute( f"UPDATE apprenants SET mail = '{objets[x].mail}' WHERE id_apprenant = {objets[x].id};" ) bdd.commit() for x in range(0, len(objets)): print(objets[x].__dict__.items())