Les accents dans les noms de répertoire en Python….

5 June 2013

Hélas, de base, Python n’aime pas trop les accents. Surtout dans les noms de répertoire, là il n’aime vraiment pas.  Si vous utilisez des noms de répertoire contenant des accents, vous avez surement eu droit à ce beau message intuitif et clair (ironie ici)

1

 

Le problème vient des accents. Dans le script j’ai mis le chemin d’accès dans une variable. Voici le code en question qui cause le problème.

2

C’est un script tout simple qui tente d’ouvrir un fichier texte en mode écriture. Mais ça plante à cause de la lettre avec l’accent « é » dans le chemin d’accès.

Pour remédier à ceci, utiliser les fonctions décodes et encodes. Autrement dit, décoder la variable avec le jeu de caractères qui sait comprendre les accents et l’encoder avec le jeu de caractères Windows. Voici la fonction en Python qui contourne le problème.

3

 

 

En utilisant cette fonction, avec comme argument la variable contenant les accents, vous allez convertir cette dernière dans le bon jeu de caractères que Windows peut comprendre et éviter que votre script plante à cause certains caractères.

Martin

Python et son accent français

7 May 2013

Combien de fois votre script Python à refusé de s’exécuter, s’est emballé ou tout simplement planté à cause d’une ou plusieurs lettres contenants des accents. Que ce soit dans votre script ou même dans vos données.

La frustration est proportionnelle au temps de traitement du script. Évidemment si votre script fonctionne depuis plusieurs minutes et qu’il plante… La frustration est à son maximum. D’ailleurs, un proverbe (de je ne sais où) dit «  L’erreur est humaine, mais pour un véritable désastre cela vous prend un ordinateur ».

Bref… pour les utilisateurs de script Python, assoyez-vous, essuyez vos larmes, faites disparaitre votre veine en relief qui part de votre cou jusqu’à votre front et pour certains l’écume sur le bord de votre bouche… Voici un petit truc pour vous aider.

Pour changer les caractères non désirés par un logiciel X avec Python, vous n’avez qu’à importer la fonction « maketrans » en collaboration avec la fonction « translate ». Les 2 éléments précédents se trouvent dans le module « string ».

Script Python

À la ligne 1, on importe tout simplement l’élément «maketrans » via le module string. Par la suite, j’ai inséré dans une variable les caractères que je veux substituer( « êèéàç »). Par la suite, en suivant l’ordre des caractères précédents, j’indique dans une nouvelle variable les caractères de remplacement. Dans ce cas-ci les mêmes lettres sans accents.

À la ligne 6, j’insère dans une variable une table de conversion. Pour terminer, je veux convertir les accents de la variable « str » via la fonction « translate » avec la table de conversion comme argument.  Ce qui donne « elevationaQuebec ».

Rien de plus simple

Martin

 

Québec 2013: Conférence et donnée ouverte

25 April 2013
Conférence de Québec

Conférence d’Esri Canada au Château Frontenac

Bonjour à tous,

Ce fut encore une fois un plaisir de vous voir en si grand nombre pour cette conférence des Utilisateurs d’Esri Canada. Ces événements nécessitent beaucoup d’organisation, mais votre présence, vos interactions et vos commentaires font en sorte de nos motiver à faire tout ce qui en notre possible afin de maintenir et même élever le niveau de ces journées.

J’aimerais donc profiter de cette tribune afin de vous partager les scripts que je me suis servi pendant la session technique. Ceux-ci tirent avantage de la donnée ouverte de la Ville de Québec. Je crois qu’ils sont potentiellement un bon point de départ pour quiconque désire débuter avec ArcPy, le module Python d’ArcGIS. J’ai donc créé et mis à votre disposition un fichier compressé comprenant les scripts ansi qu’un MXD vous suggérant une symbologie pour les 23 couches d’informations offertes en ‘shapefile’ sur le site de données ouvertes de la Ville de Québec. Pour que tout cela fonctionne adéquatement, vous avez besoin:

  •  ArcGIS Desktop 10.1
  • Les scripts proposés dans le cadre de cet article
  • Des “shapefiles” (logo SHP bleu) compressés (zip) téléchargés du portail de la Ville de Québec (téléchargez ceux qui vous intéresse, le script fera le reste pour vous)

Les étapes suivantes vous permettront de traiter les fichiers ‘bruts’ du portail pour en faire des couches prêtes à l’emploi dans ArcMap. Comme vous le verrez, je vous ai même fourni un ‘MXD’.

  • Ouvrez un explorateur Windows;
  • Dirigez-vous à la racine de votre disque C ;
  • Créez un dossier nommé Quebec (pas d’accents) directement à la racine de votre C ;
  • Extraire le contenu du fichier compressé dans le dossier Quebec (vous verrez 3 scripts et 1 MXD);
  • Effectuez un clic de droite sur le script nommé “1.CreationDossiersEtGdb.py”, choisissez ‘Ouvrir avec…’, puis python.exe ;
  • Placez les “shapefiles” compresés dans le dossier ‘zip’ nouvellement créé (ne pas extraire la donnée);
  • Effectuez un clic de droite sur le script nommé “2.UnZip.py”, choisissez ‘Ouvrir avec…’, puis python.exe;
  • Effectuez un clic de droite sur le script nommé “3.Shp2gdb.py”, choisissez ‘Ouvrir avec…’, puis python.exe (étape plus longue);
  • Double-cliques sur ‘DonneesQuebec.mxd’

Lorsque vous allez lancer les scripts, vous verrez une fenêtre noire (DOS) apparaître, c’est normal, il suffit d’attendre quelques instants pour qu’elle disparaisse et que le travail soit effectué. Les deux premiers scripts devraient être très rapides et le troisième prendra approximativement 1 minute, mais vous verrez du texte vous informant qu’il est en action.Script pythonSi vous voulez profiter de cet exercice pour aller plus loin et explorer le code, je vous suggère de télécharger le petit programme gratuit PyScripter. Il vous permettra d’exécuter les scripts tout au long de vos éditions, en plus de vous offrir l’assistance lors de l’écriture de votre code.

Au plaisir,

Eric