#1 Thu 07 September 2017 09:41
Des majuscules pour les noms de communes
Bonjour,
Je souhaiterais mettre des majuscules sur des noms de communes sur toute la France, ce que je sais faire avec la première lettre et la fonction UPPER, mais que je voudrais étendre à d'autres lettres :
- Gournay-en-bray devienne Gournay-en-Bray
- Chalon-sur-saône devienne Chalon-sur-Saône
Le raisonnement serait alors :
Mettre la première lettre en majuscule si le mot est supérieur à 3 lettres (pour éviter "et" et "sur")
Mettre en majuscule si la lettre suit un trait d'union ou un espace et s'il est supérieur à 3 lettres.
Je ne sais pas si le raisonnement est bon et de quel manière traduire ça en python, quelqu'un pourait-il(elle) m'aider ?
Merci à tou-te-s,
Pierre
Hors ligne
#2 Thu 07 September 2017 10:47
Re: Des majuscules pour les noms de communes
Bonjour,
Tu as déjà posé une question sur ce sujet : Majuscule et minuscule dans Arcgis Desktop...
Il y a aussi ce fil de discussion : Cherche expression en Python - Majuscule / Minuscule
A+
Franck
Hors ligne
#4 Thu 07 September 2017 11:17
- Olive 71
- Participant actif
- Date d'inscription: 10 Feb 2010
- Messages: 59
Re: Des majuscules pour les noms de communes
Bonjour,
Le plus simple, s'agissant des noms de commune, est de télécharger le COG (Code Officiel Géographique) sur le site de l'INSEE (https://www.insee.fr/fr/information/2666684). Les noms des communes y apparaissent en majuscules et en minuscules avec premières lettres en majuscule.
Olivier
Hors ligne
#6 Wed 04 October 2017 16:25
- Olive 71
- Participant actif
- Date d'inscription: 10 Feb 2010
- Messages: 59
Re: Des majuscules pour les noms de communes
Bonjour,
Je prends le temps de compléter ma réponse du mois dernier qui ne portait que sur les noms de communes.
J'avais mis en place un traitement pour mettre la première lettre des toponymes en majuscule. C'était en SQL mais le plus fastidieux avait été de recenser tous (si possible) les cas possibles avec les articles et mots de liaison qui doivent rester en minuscule.
La première étape est de passer la première lettre de tous les mots en majuscule. J'ai considéré que l'on pouvait avoir 2 caractères séparant les mots dans un toponyme, l'espace et le tiret.
Le code python est le suivant :
Code:
toponyme_wrk = toponyme.replace("-","- ") topo_word=[] for word in toponyme_wrk.split(" "): topo_word.append(string.capitalize(word)) toponyme_final = string.join(topo_word," ").replace("- ","-")
Dans un second temps il faut repasser tous les mots de liaison en minuscule par des replace, en prenant en compte les 2 séparateurs de mots.
J'avais tenté de faire en recensement le plus exhaustif possible, tout est dans le fichier ci-joint (tous les cas rencontrés sur mon département étaient traités, mais il peut y en avoir d'autres).
Olivier
Hors ligne
#8 Tue 07 November 2017 11:22
Re: Des majuscules pour les noms de communes
Merci,
depuis j'ai pris la base de l'IGN et rajouté les accents à la Main, en effet, il y a également les communes avec une première en majuscule et avec un accent (Épinay, Évry, etc..)
Merci pour pour la réponse tout de même, pour la prochaine fois.
Pierre
Hors ligne