Mettre en majuscule la première lettre de chaque mot dans le champ d'attribut


8

Quelqu'un connaît-il un moyen de mettre en majuscule la première lettre de chaque mot dans un champ d'une table attributaire? Je fais cela dans QGIS. Je connais les calculs sur le terrain pour changer tous les mots en bas ou en haut, mais je voudrais pouvoir mettre la première lettre en majuscule pour chaque mot et les lettres restantes en bas de casse. Je sais comment le faire manuellement, mais je recherche un moyen automatisé. Similaire à la commande appropriée dans Excel.

Merci...

Réponses:


6

Utilisation de la calculatrice de champ python:

http://hub.qgis.org/wiki/17/Using_Python_to_calculate_attribute_values_with_'fieldpyculator '

Vous devriez pouvoir nous utiliser la méthode .title () sur vos chaînes:

/programming/3728655/python-titlecase-a-string-with-exceptions

Éditer:

En supposant que le champ d'attribut que vous souhaitez modifier est "FIELD", la sintax à utiliser est:

value = <FIELD>.title()

Merci, cela semble être sur la bonne voie, mais je suis un peu confus avec la syntaxe. En lisant les liens et autres, j'ai supposé que ce serait: value = str.Title (<BLD_NAME>) mais cela donne une erreur de syntaxe. Y a-t-il autre chose que je dois ajouter avant str?
Ryan Garnett

1
Jetez un œil à mon édition, dans votre cas particulier, ce sera: value = <BLD_NAME> .title () Notez que Python est sensible à la casse. De plus, title () n'est pas une fonction mais une méthode de la chaîne de classe, c'est pourquoi la syntaxe est string.title ()
Alexandre Neto

7

La fonctionnalité est déjà intégrée chez Qgis.

La capture d'écran suivante provient de la version QGis 1.9-Master, mais existe probablement aussi dans les versions précédentes.

entrez la description de l'image ici


J'utilise la version 1.8.0 et elle n'est pas disponible.
Ryan Garnett
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.