Attribut PyQgis

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

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    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?
    1. Contributeur
      @ProMed1es-tu certain d'avoir partagé l'ensemble de ton code?
    2. @yg_beOui, en fait je suis débutons sur les manipes des scripte PyQgis.
      Pouvez vous amélioré le code svp.
    3. Contributeur
      @ProMed1je suis surpris que ton code fonctionne sans aucun
      import
      .
    4. @yg_beoui c'est vrais :).
      avez vous une idée pour améliorer et adapté les instructions d'éditions attribut.
      merci.