def pdf_to_txt(): db_csv = pandas.read_csv("arretes.csv", encoding='utf-8') for i in range(len(db_csv)): url = db_csv.loc[i].url url_split = url.split("/") nom = url_split[-1].split(".")[0] if nom + ".txt" not in os.listdir("./Datas/TXT"): try: changement_url(i, url, db_csv) myfile = requests.get(url) open('./Datas/PDF/' + nom+".pdf", 'wb').write(myfile.content) texte = pdf_to_image("./Datas/PDF/"+nom+".pdf") fichier = open("./Datas/TXT/" + nom + ".txt", "w", encoding="utf-8") fichier.write(texte) fichier.close() if db_csv.loc[i].erreurs: enlever_erreur(db_csv, i, url) except: ajout_erreur(db_csv, i, "Problème URL") try: os.remove("./Datas/PDF/" + nom + ".pdf") except: pass db_csv.loc[i, "nom_txt"] = nom + ".txt" db_csv.to_csv("arretes.csv", index=False, encoding='utf-8') return db_csv
def recup_date(texte, db_csv, i): fichier = open(texte, "r", encoding="utf-8") if "Envoyé en préfecture le" in fichier.read(): fichier.seek(0) res = str(fichier.read()).partition("le ")[2].partition("\n")[0] fichier.close() return res else: ajout_erreur(db_csv, i, "Problème date") return None
def recup_pathologie(texte, db_csv, i): fichier = open(texte, "r", encoding="utf-8") if "pathologies suivantes" in fichier.read(): fichier.seek(0) res = str(fichier.read()).partition("pathologies suivantes")[2].partition("Considérant")[0] fichier.close() return res else: ajout_erreur(db_csv, i, "Problème pathologies") return None
def message(db, liste_adresse, db_csv, p_list_txt): liste = [] for adresse in liste_adresse: if adresse is None: # FIXME gérer en amont continue char = '<font size="+1"><B>' + adresse + "</B><br><br>" # begin sort docs (reverse chronological order) sel_docs = [(k, v[0]["date"]) for k, v in db.items() if v[0]["adresse_orig"] == adresse] sorted_list = sort_docs(sel_docs) # end sort docs (reverse chronological order) cat_last = db[sorted_list[0][0]][0]["categorie"] for couple in sorted_list: elt = db[couple[0]][0] # TODO handle in a better way if elt["date"] is None: if not db_csv.loc[db_csv["url"] == elt["url"], "err_date"].values[0]: indice = db_csv.loc[db_csv["url"] == elt["url"]].index.tolist()[0] ajout_erreur(db_csv, p_list_txt, indice, "Problème date") # end TODO cat = elt["categorie"] char += "<U>" + cat + "</U><br>" char += ( "<i>" + "<a href=" + elt["url"] + ' Target="_blank">' + elt["nom_doc"] + "</a>" + "</i> " + (elt["date"] if elt["date"] is not None else "??/??/????") + "<br>") # if cat == "Arrêtés de péril": try: char += ("- " + (", ".join(elt["classification_pathologies"]) if elt["classification_pathologies"] is not None else "(manquant)") + "<br> " + "- " + (", ".join(elt["classification_lieux"]) if elt["classification_lieux"] is not None else "(manquant)") + "<br>") except: print(adresse, "problème de pathologie manquante") raise char += "<br>" char += "</font>" liste.append([char, cat_last]) return liste
def message(liste_adresse, db_csv): db = database.ouverture_bdd() liste = [] for adresse in liste_adresse: char = '<font size="+1"><B>' + adresse + "</B><br><br>" liste_key = [] liste_key_date = [] liste_date = [] for key, value in db.items(): if value[0]["adresse"] == adresse: if key not in liste_key: liste_key.append(key) liste_key_date.append([key, value[0]["date"]]) liste_date.append(value[0]["date"]) # liste_date.sort(reverse=True) trie_date(liste_date) sorted_list = [] for i in liste_date: for k in liste_key_date: if k[1] == i: sorted_list.append(k) cat_last = db[sorted_list[0][0]][0]["categorie"] for couple in sorted_list: cat = db[couple[0]][0]["categorie"] char += '<U>' + cat + '</U><br>' try: char += '<i>' + '<a href=' + db[couple[0]][0]["url"] + ' Target="_blank">Lien vers le pdf</a>' + '</i> '\ + db[couple[0]][0]["date"] + '<br>' except: indice = db_csv.loc[db_csv['url'] == db[couple[0]][0] ["url"]].index.tolist()[0] ajout_erreur(db_csv, indice, "Problème date") if cat == 'Arrêtés de péril': try: char += return_string( db[couple[0]][0]["classification_pathologies"] ) + " <br> " + return_string( db[couple[0]][0]["classification_lieux"]) + "<br>" except: print(adresse, "problème de pathologie manquante") char += '<br>' char += '</font>' liste.append([char, cat_last]) return liste
id = rec.recup_id(path) if id not in json2: cat = database.calcul_categorie(i, db_csv) date = rec.recup_date(path, db_csv, i) if cat == "Arrêtés de péril": pathologies = rec.recup_pathologie(path, db_csv, i) if not db_csv.loc[i].erreurs: conv.changement_url(i, db_csv.loc[i].url, db_csv) try: database.ajout_ligne_peril( id, db_csv.loc[i].url, db_csv.loc[i].adresse + ", Marseille", pathologies, date) except: ajout_erreur(db_csv, i, "Problème adresse") else: try: database.ajout_ligne_autre( cat, id, db_csv.loc[i].url, db_csv.loc[i].adresse + ", Marseille", date) except: ajout_erreur(db_csv, i, "Problème adresse") db_csv.to_csv("arretes.csv", index=False, encoding='utf-8') c = carte.creation_carte() icon_create_function = """ function(cluster) { var childCount = cluster.getChildCount();