我想使用 QGIS 中的 Python Console 将 Shapefile 中的所有属性更改为某个值。 我有一个名为“ANB”的字段,我想更改例如“3”中的值“2”。
我知道如何访问图层并选择我想要的值:
layer=QgsVectorLayer("C:.../Briefkasten.shp","briefkasten","ogr")
selection=layer.getFeatures(QgsFeatureRequest().setFilterExpression(u' "ANB"=2'))
但我不知道如何进行。
有人可以帮助我吗? 非常感谢!
问候罗伯特
最佳答案
在 Tom 的帮助下我找出了正确的代码(德语评论,抱歉)
#####Vektorlayer (Shape) in QGIS laden:
layer=QgsVectorLayer("C:/Users/robert 2/Documents/QGIS_Python/Briefkasten.shp","briefkasten","ogr")
QgsMapLayerRegistry.instance().addMapLayers([layer])
#####Attribut aus Shape abfragen
layer=QgsVectorLayer("C:/Users/.../QGIS_Python/Briefkasten.shp","briefkasten","ogr")
features=layer.getFeatures()
f=features.next()
f.attributes()
##Index von bestimmten Spaltennamen finden um den später ansprechen zu können (ANB beinhaltet dann Index als Zahl)
ANB=f.fields().indexFromName('ANB')
## nur ein bestimmtes Attribut aus einer Spalte auswählen und anzeigen lassen
selection=layer.getFeatures(QgsFeatureRequest().setFilterExpression(u' "ANB"=2'))
## selektierte Werte updaten:
layer.startEditing()
for feat in selection:
layer.changeAttributeValue(feat.id(), ANB, 3)
layer.commitChanges()
关于python - 如何使用 QGIS/Python 更改具有特定值的 Shapefile 中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48121126/