Attribut PyQgis

Fermé
ProMed1 Messages postés 30 Date d'inscription dimanche 27 mai 2018 Statut Membre Dernière intervention 13 avril 2021 - Modifié le 11 avril 2021 à 22:15
ProMed1 Messages postés 30 Date d'inscription dimanche 27 mai 2018 Statut Membre Dernière intervention 13 avril 2021 - 13 avril 2021 à 16:47
bonjour à tous,

Sur Qgis, j'aimerais créer un script pour une tache qui se répète.
En fait le but est de charger la couche, créer des nouveaux champs et les remplirait :).
Pour la couche "P_Teste.shp":
  • créer les champs : 'P_T1', 'P_T2' et 'P_T3'

le champ 'P_T1' doit être remplie par les enregistrements du champ existant 'CCC'.
le champ 'P_T2' doit être remplie par la chaine de caractère suivant : "P123456".
le champ 'P_T3' doit être remplie par la chaine de caractère suivant : "Q123456".
voici le code pour créer les champs qui fonctionne correctement:
CH1= 'D:/Python Qgis/CCM/P/P_Teste.shp'
CH2= 'D:/Python Qgis/CCM/L/L_Teste.shp'


couche = iface.addVectorLayer(CH1, '', 'ogr')
maj = couche.dataProvider()
maj.addAttributes([QgsField('P_T1', QVariant.String), \
QgsField('P_T2', QVariant.String), QgsField('P_T3', QVariant.String)])
couche.updateFields()


couche2 = iface.addVectorLayer(CH2, '', 'ogr')
maj2 = couche2.dataProvider()
maj2.addAttributes([QgsField('L_T1', QVariant.String), \
QgsField('L_T2', QVariant.String), QgsField('L_T3', QVariant.String)])
couche2.updateFields()


Sur le net j'ai essayer de trouver un code qui peut faire la mise à jour des champs.
j'ai ceci: (mais je n'arrive pas a l'adapté a mon besoin car je suis débutant sur ce truque).
with edit(vl):
    vl.addAttribute(QgsField(my_field_name, QVariant.String))
    vl.updateFields()
    for f in vl.getFeatures():
        f[my_field_name] = my_field_value
        vl.updateFeature(f)



Pour la couche "L_Teste.shp":
C'est les même procédure a suive.


Merci d’avance.

1 réponse

yg_be Messages postés 21496 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 juin 2023 1 343
11 avril 2021 à 16:58
bonjour, merci de préciser le langage quand tu utilises les balises de code. explications: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

es-tu certain d'avoir partagé l'ensemble de ton code?
0
ProMed1 Messages postés 30 Date d'inscription dimanche 27 mai 2018 Statut Membre Dernière intervention 13 avril 2021
11 avril 2021 à 22:26
bonjour yg_be,

ok bien reçu, merci pour l'explication.
si besoin voici le lien du prpjet Shp:
https://wetransfer.com/downloads/dce9d927413a2c209d79cf19044732f720210411202523/e72f95

en vous remercions d'avance.
0
yg_be Messages postés 21496 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 juin 2023 1 343 > ProMed1 Messages postés 30 Date d'inscription dimanche 27 mai 2018 Statut Membre Dernière intervention 13 avril 2021
12 avril 2021 à 10:52
es-tu certain d'avoir partagé l'ensemble de ton code?
0
ProMed1 Messages postés 30 Date d'inscription dimanche 27 mai 2018 Statut Membre Dernière intervention 13 avril 2021 > yg_be Messages postés 21496 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 juin 2023
12 avril 2021 à 21:48
Oui, en fait je suis débutons sur les manipes des scripte PyQgis.
Pouvez vous amélioré le code svp.
0
yg_be Messages postés 21496 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 juin 2023 1 343 > ProMed1 Messages postés 30 Date d'inscription dimanche 27 mai 2018 Statut Membre Dernière intervention 13 avril 2021
12 avril 2021 à 21:57
je suis surpris que ton code fonctionne sans aucun
import
.
0
ProMed1 Messages postés 30 Date d'inscription dimanche 27 mai 2018 Statut Membre Dernière intervention 13 avril 2021 > yg_be Messages postés 21496 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 juin 2023
13 avril 2021 à 12:44
oui c'est vrais :).
avez vous une idée pour améliorer et adapté les instructions d'éditions attribut.
merci.
0